三种工厂的设计模式

一、 三种模式概括

1、简单工厂模式

实例化对象的时候不再使用 new Object()形式,可以根据用户的选只需要给出具体
实例的描述给工厂,工厂就会自动返回具体的实例对象。择条件来实例化相关的类。
对于客户端来说,去除了具体的类的依赖。

2、工厂方法模式

工厂方法模式是对简单工厂模式进一步的解耦,因为在工厂方法模式中是一个子类
对应一个工厂类,而这些工厂类都实现于一个抽象接口。这相当于是把原本会因为
业务代码而庞大的简单工厂类,拆分成了一个个的工厂类,这样代码就不会都耦合
在同一个类里了

3、抽象工厂模式

抽象工厂与工厂方法模式的区别在于:抽象工厂是可以生产多个产品的它只需要改
变具体工厂即可使用不同的产品配置。不管是任何人的设计都无法去完全防止需求
的更改,或者项目的维护,那么我们的理想便是让改动变得最小、最容易,只需要
更改具体的工厂即可。

二、三种设计模式的UML类图

1、简单工厂模式

三种工厂的设计模式

2、工厂方法模式

三种工厂的设计模式

3、抽象工厂模式

三种工厂的设计模式

三、三种设计模式的源代码

以百度云网盘链接方式分享,请自行下载查看
链接:https://pan.baidu.com/s/1Pkn9Ke6g4w3dTTtjau3LcQ
提取码:vbs8

四、总结分析

三种设计模式,各有各的优点。但是在某种程度上三种工厂的设计模式是在一步
一步的优化。工厂方法模式是简单工厂模式的进一步抽象和推广。它遵循了“
开放—封闭”原则,但是工厂方法模式在每增加一个产品时就需要增加一个工厂,
这样会增加代码量,代码重复比较多,因此抽象工厂模式解决了这个问题,在增
加产品时只需要在工厂中加入产品即可,不需要增加产品工厂。但是逆向来看,
如果需要多次生产产品就需要多次实例化对象。因此三种设计模式各有各的优缺
点,需要在合适的时候使用合适的设计模式。