简单工厂模式、工厂方法模式、抽象工厂模式对比

1 概念对比

简单工厂模式:工厂类可以根据参数的不同返回不同的类的实例。

简单工厂模式、工厂方法模式、抽象工厂模式对比_第1张图片

 

工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

简单工厂模式、工厂方法模式、抽象工厂模式对比_第2张图片

抽象工厂:提供了一个创建一系列相关或相互依赖对象的接口。

简单工厂模式、工厂方法模式、抽象工厂模式对比_第3张图片

2 使用心得

1、简单工厂模式中,工厂Factory类集中了所有产品创建的逻辑,一旦要拓展新产品时,就不得不修改工厂类,并且会造成工厂的逻辑过于复杂;开发中很少使用。

2、工厂方法模式中,在新增一个新产品时,就要新增一个具体工厂和一个具体产品类,这样程序的拓展性就有了提高,符合了开闭原则,避免了简单工厂模式的缺点,但是呢,新增产品时需要新增两个类,会增加代码量,可谓是有舍有得,具体如何要结合具体情况来使用;开发中经常使用。

3、抽象工厂模式是所有工厂模式的一般形式,当抽象工厂模式退化到只有一个产品等级结构时,就变成了工厂方法模式。当工厂方法模式的工厂类只有一个时,且工厂方法为静态方法时,则又变成了简单工厂模式。与工厂方法模式相似,抽象工厂模式隔离了具体类的生成,让客户端不清楚具体什么样的对象被创建。

 

 

你可能感兴趣的:(23种设计模式,各个工厂模式对比,factory)