【PHP设计模式03】抽象工厂模式

【抽象工厂模式】

      前面讲的工厂方法模式,每增加一个产品都需要增加对应的工厂,这样就会存在很多工厂,但是在现实生活中的有些时候,人们并不关心产品是由哪个工厂制造的,就像一个服装厂既可以生产男装,也可以生产女装,我们只需造一个服装厂同时生产一个产品族下的男装和女装即可,而不必要分别创建两个服装厂。

      抽象工厂模式,则为一个产品族提供了统一的创建接口,当需要这个产品族的一系列相关对象时,就可以为此系列的产品族创建一个具体的工厂类来实现该接口。

   结构:1个工厂父类(interface或abstract)   、1个具体工厂子类(实现父类接口或继承抽象父类)  

                多个产品父类(interface或abstract)   、多个具体产品子类(实现父类接口或继承抽象父类)  

      示例:下面以还是以服装厂生成衣服为例,一个服装厂,既可以生产男装也可以生产女装,每增加一个产品都需要在具体工厂子类中增加实例化方法:

  • 父类工厂接口 IFactory.php :

你可能感兴趣的:(PHP设计模式,PHP进阶技术实战,PHP,设计模式,抽象工厂模式)