设计模式-创建型-工厂方法

上一章我们说了简单工厂模式,我们知道了简单工厂有很多缺点,而且违背了开放封闭原则,那么如何解决这个问题呢?工厂方法会给你答案。
百度百科是这么定义工厂方法模式的:
工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。

这段话的意思是将相同的代码写在工厂的父类里每个新的产品创建一个子类的工厂方法,将实例化的过程放到子类里,父类只提供一个必要的接口。这样我们在需要添加新功能的时候只需要添加一个具体的工厂子类,继承父类。我们不需要去更改之前的代码,只需要再添加一个新的子类。
总结
工厂方法模式的优缺点
优点 (1)克服了简单工厂违背开放封闭原则的缺点,保留了工厂封装的优点。(2)添加新产产品只需要添加一个具体的工厂类和具体的产品类。提高了扩展性。
缺点 每添加一个新的产品就要添加一个具体工厂类和一个具体产品类,类的个数成对的增加,系统变得更复杂。
适用
(1) 客户端不知道它所需要的对象的类。在工厂方法模式中,客户端不需要知道具体产品类的类名,只需要知道所对应的工厂即可,具体的产品对象由具体工厂类创建,可将具体工厂类的类名存储在配置文件或数据库中。

猜你喜欢

转载自blog.csdn.net/liuyubibn/article/details/81358688