今天来学习下工厂方法模式.
工厂方法模式与简单工厂模式最大区别在于,工厂方法抽象了一个定义生产产品的工厂接口,具体产品的创建推迟到工厂类的子类(具体工厂)中,此时工厂类不再负责所有产品的创建.这样就避免了简单工厂模式所暴露出来的一些问题.
下面来具体看看代码~
-
类关系图:
设计步骤:
步骤1: 创建抽象工厂类,定义具体工厂的公共接口;
步骤2: 创建抽象产品类 ,定义具体产品的公共接口;
步骤3: 创建具体产品类(继承抽象产品类) & 定义生产的具体产品;
步骤4:创建具体工厂类(继承抽象工厂类),定义创建对应具体产品实例的方法;
步骤5:外界通过调用具体工厂类的方法,从而创建不同具体产品类的实例总结:
工厂模式可以说是简单工厂模式的进一步抽象和拓展,在保留了简单工厂的封装优点的同时,让扩展变得简单,让继承变得可行,增加了多态性的体现。缺点就是增加一个产品时会额外增加代码量.
(学习文章 :https://blog.csdn.net/carson_ho/article/details/52343584)