设计模式—Factory Method模式
Factory Method模式,工厂方法模式。
我们初始化类可以通过 new A1(),new A2()的方法产生,但是呢,假如初始化类的时候有一些需要转换的参数或其他需求,我们可以定义一个类B,然后通过类B的一个函数返回我们需要的初始化的实例。
但是这种通过一个类的函数生成不同的类的实例叫做简单工厂模式,但是当我们需要这个类(工厂类)生成非常多不同类的实例的时候,这个类就会变得非常臃肿。另一种解决方案是,生成不同的类的实例的逻辑实现放到工厂类的子类来实现,每个工厂类的实例只对应生成一个类的实例。
应用场景:
- 在生成对象很复杂的时候
- 需要解耦的时候
- 需要扩展性的时候
优点:
- 多态性
- 扩展性好
- 解耦
缺点:
- 当生成类种类很多的时候,要对应编写很多工厂类
UML:
例子:
例如手机工厂,每生产一种型号的手机(产品类子类)就多开一条产品线(工厂类子类)。