一、工厂方法模式简介:
工厂方法模式的意图是定义一个创建产品对象的工厂接口,让子类决定实例化哪一个类,工厂方法模式使一个类的实例化延迟到其子类。
工厂方法模式的类图如下:

基本上来说,FacotryMethod模式和AbstractFactory模式所作的事情是一样的,都是用来创建与具体程序代码无关的对象,只是面对的对象层次不一样,AbstractFactory创建一系列的对象组,这些对象彼此相关。而FactoryMethod往往只是创建单个的对象。
在这里,我想强调一下面向对象设计的一个重要思想:针对接口编程,而不是针对具体的实现编程(Code to an interface rather than to animplementation),这个思想可以说是设计模式的基石之一。针对接口编程的好处有很多,通过接口来定义对象的抽象功能,方便实现多态和继承;通过接口来指定对象调用之间的契约,有助于协调对象之间的关系;通过接口来划分对象的职责,有助于寻找对象,等等。AbstractFactory和FactoryMethod,还有其他的一些创建型的设计模式,都是为了实现这个目的而设计出来的。它们创建一个个符合接口规范的对象/对象组,使得用同一个Factory创建出来的对象/对象组可以相互替换。这种可替换性就称为多态,是面向对象的核心思想之一。所以,请记住这一点:面向接口编程而非实现。
本文介绍了工厂方法模式的基本概念,展示了其在JDK中的应用,并分享了作者的学习体会。
5万+

被折叠的 条评论
为什么被折叠?



