常见的三种工厂模式区别及单例模式

简单工厂模式:

1. 应用场景:用来实现创建对象和对象的使用分离,将对象的创建(实例化)交给专门的工厂类负责。
2. 举例说明:我有一个工厂类,我们有 A 产品类生产 A 产品和 B 产品类生产 B 产品或更多的产品类,你下单什么产品,工厂就调用指定的产品类进行生产产品。

工厂模式:

1. 应用场景:在该模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类(为抽象类)仅仅负责给出具体工厂必须实现的接口,而不负责产品类被实例化这种细节。
2. 举例说明:我有一个工厂总部(核心)和一个产品总部(核心),工厂总部负责管工厂,产品总部负责管产品,产品总部下有多少个产品,工厂总部下就有多少个工厂,即指定的工厂生产指定的产品(一对一关系);如果你下单 A 产品,A 工厂就生产产品;你下单 B 产品,B 工厂就生产产品。

抽象工厂模式

1. 定义:此模式是对工厂方法模式的进一步扩展。在工厂方法模式中,一个具体的工厂负责生产一类具体的产品,即一对一的关系,但是,如果需要一个具体的工厂生产多种产品对象,那么就需要用到抽象工厂模式了,即一个工厂可以生产多种产品。
2. 举例说明:产品分为 2 类,有鼠标产品类总部(核心类),有键盘产品类总部(核心类),鼠标类总部下有戴尔鼠标、联想鼠标 2 种品牌的鼠标产品类,键盘类总部下也有戴尔键盘、联想键盘 2 种品牌的键盘产品类,这时有一个工厂总部类(核心类),可以生产鼠标和键盘,工厂总部下面有戴尔工厂、联想工厂 2 种品牌的工厂,但是这 2 种工厂每个工厂都可以生产鼠标和键盘。

单例模式

1、定义:确保一个类只能同时拥有一个实例,并提供一个访问它的全局访问点
2、举例说明:一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件。
————————————————
原文作者:best辉
转自链接:博客:[浅谈设计模式(一)] 让你一分钟读懂设计模式
版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!