工厂方法模式(Fatory Method Pattern)
一、概念
工厂方法模式,又被称为· ”多态工厂模式“·,是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则
。
- 工厂方法模式
抽象出工厂接口
,声明具体工厂子类必须实现的方法
。将对象实际创建工作交由工厂的具体实现类
完成。这样进一步抽象化的好处是每添加一个具体对象只需要添加一个对应的具体工厂对象,原有工厂对象不需要进行任何修改,很好的符合了“开放-关闭”原则。
二、参与者
抽象产品:是工厂方法模式所创建的产品的抽象
具体产品:是抽象产品的具体实现
抽象工厂:声明了工厂方法
具体工厂:具体的工厂方法,实现了抽象工厂,用来生产具体的产品
调用者:
三、代码例子
BMW320工厂 生产 BMW320
BMW520工厂 生产 BMW520
抽象产品:BMW
具体产品:BMW320 和 BMW520
抽象工厂:Factory
具体工厂:BMW320Factory 和 BMW520Factory
四、UML图
五、优缺点
(一)优点
- 扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。,原有工厂类不需要进行任何修改,很好的符合了“开放-关闭”原则。
- 工厂都具有的优点:通过工厂创建对象,不关心对象实例化的具体逻辑
(二)缺点
每次增加一个产品时,都需要增加一个具体类和对应的具体工厂对象(需要写很多工厂)
,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度。