工厂三姐妹
来源:互联网 发布:华东石油大学网络教育 编辑:程序博客网 时间:2024/04/28 16:15
简单工厂:
简单工厂是一个工厂且只有一条生产线,比如一个生产车的简单工厂,它只有一条生产线,就是造车。或者大话设计上的计算器例子,这个简单工厂只用一条生产线,要么生产加法,要么减法,要么乘法,要么除法,但是只有这一条生产线且只能生产其中一种运算符即只做一件事。
简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖,但是若要增加其他的运算符比如m的n次方,就要修改运算类工厂,在switch中添加分支,其每一次扩展时都要更改工厂类,对修改开放了,不符合开闭原则。
工厂方法:
定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂模式使一个类的实例化延迟到其子类。工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行。你想要加功能,本来是改工厂类的,而现在是修改客户端了,这样就解决了简单工厂不能满足开闭原则的弊端。当再想加一个m的n次方运算时,只需要添加一个m的n次方工厂类和它的运算类就可以了。
简单工厂是工厂方法的极端化。工厂方法是简单工厂模式的进一步抽象和推广。
一个简单工厂模式的工厂类,变成了一个工厂抽象接口和多个具体生成对象的工厂。工厂方法是由简单工厂自动化而来的,工厂方法是一个工厂有好几条生产线,工厂方法可以看做是由几个简单工厂构成,就拿计算器的例子来说,工厂方法就是一个工厂有好几个流水线,有生产加法的,生产减法的,生产乘法的,生产除法的。
抽象工厂:
提供一个创建一系列或相关依赖对象的接口,而无需指定它们具体的类。
抽象工厂是由几个工厂方法自动化构成,工厂方法是抽象工厂的极端化。
简单工厂是一个工厂只有一条生产线,就生产车。而工厂方法是一个工厂有几条生产线,可以生产汽车,电动车,自行车。抽象工厂则可以看成是由能生产好几种品牌车、每个品牌又都有好几种类型车的几个工厂的合成。大话设计上还有个例子,为满足各种不同类型的数据库SQLsever,Access等对user,Department的操作,每个数据库都要能对各个表进行操作(工厂方法),而这里又有好几种数据库都具有此功能(抽象工厂)。
- 工厂模式三姐妹
- 比较工厂三姐妹
- 工厂三姐妹
- 工厂三姐妹
- 工厂三姐妹
- 工厂三姐妹
- 工厂三姐妹
- 工厂三姐妹
- 工厂三姐妹
- 工厂三姐妹
- 工厂三姐妹
- 初识工厂三姐妹
- 工厂模式-三姐妹
- 工厂三姐妹
- 设计模式------工厂三姐妹
- 设计模式------工厂三姐妹
- 设计模式-工厂三姐妹
- 设计模式--工厂三姐妹
- hibernate缓存:一级缓存和二级缓存
- linux调度域
- 用矩阵表示数列递推公式
- 关于使用lame静态库来使音频格式转换成MP3
- 用快排思想实现单链表
- 工厂三姐妹
- WPF中呈现变形与布局变形的区别
- hdu4198——Quick out of the Harbour
- NDK avi播放器
- PlaySound音乐播放
- 6种不良坐姿最伤脊椎
- GarbageCollation的实现
- Hibernate学习笔记之EHCache的配置
- Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)