设计模式之简单工厂模式,工厂模式,抽象工厂模式学习总结

时间:2020-12-06 20:28:57

简单从工厂模式(Simple Factory)

又称之为静态工厂方法模式;
不利于产生系列产品;
简单工厂模式通过接收的参数的不同来返回不同的对象实例。
这种情况不方便修改,如果需要扩展类,我们需要添加新的类的同事,还要修改代码。
- 组成

 1) 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。

2) 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。在java中由接口或者抽象类来实现。

3) 具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。

工厂模式(Factory Method)

工厂模式是针对每一种产品提供一个工厂类 。通过不同的工厂实例来创建不同的产品实例。
在同一等级结构中, 支持增加任意产品 。
这种情况下,如果需要扩展类,我们需要添加添加新的类以及其工厂实体类。

组成

1)抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在Java中它由抽象类或者接口来实现。

2)具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。

3)抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类或者接口来实现。

4)具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现。

简单工厂模式与工厂模式比较:
工厂方法模式和简单工厂模式在定义上的不同是很明显的。工厂方法模式的核心是一个抽象工厂类,而不像简单工厂模式, 把核心放在一个实类上。工厂方法模式可以允许很多实的工厂类从抽象工厂类继承下来, 从而可以在实际上成为多个简单工厂模式的综合,从而推广了简单工厂模式。

抽象工厂模式(Abstract Factory)

抽象工厂模式会在工厂中处理不同的产品线,这样的话减少了工厂实体类的增加。
在这种情况下,如果需要扩展类,我们需要添加新的类,然后在其工厂实体类中添加新的方法。

Ok,Done。