23种设计模式 (一) 创建型模式
2015-03-27 15:20
309 查看
===== 创建型模式 =====
1、abstract factory 抽象工厂
抽象工厂模式给几个类似的对象建立一个公共的抽象基类,创建对象的时候可以通过使用基类接口。
calss dog running()
阿拉斯加 running() | 哈士奇 running()
优缺点:
分离的具体的类
易于交换产品系列 (哈士奇替换成金毛)
有利于产品的一致性 (都具有相同的功能)
难以添加新接口(需要修改抽象类和所有子类)
用例:
OS或soft的控件风格。
2、factory function 工厂方法
工厂方法是抽象工厂的简化模式,顾名思义是针对单个函数的抽象
3、build 生成器
类似抽象工厂,最终生成一个结果,获取出来,一般由一个导演类拥有
car_builder
build_door()
build_wheel()
build_engine() -> get_car()
优点:
隐藏内部结构
构造和代码分开
对构造过程有更好的控制 (因为分步)
4、prototype 原型
拥有一个clone()方法,可以复制自身
优点:
运行时增加删除
改变值指定新对象
用例:
会分裂的对象
5、sigleton 单件
在程序运行期间只存在一个实例的对象
优缺点:
可以受到访问控制
比全局变量更安全
1、abstract factory 抽象工厂
抽象工厂模式给几个类似的对象建立一个公共的抽象基类,创建对象的时候可以通过使用基类接口。
calss dog running()
阿拉斯加 running() | 哈士奇 running()
优缺点:
分离的具体的类
易于交换产品系列 (哈士奇替换成金毛)
有利于产品的一致性 (都具有相同的功能)
难以添加新接口(需要修改抽象类和所有子类)
用例:
OS或soft的控件风格。
2、factory function 工厂方法
工厂方法是抽象工厂的简化模式,顾名思义是针对单个函数的抽象
3、build 生成器
类似抽象工厂,最终生成一个结果,获取出来,一般由一个导演类拥有
car_builder
build_door()
build_wheel()
build_engine() -> get_car()
优点:
隐藏内部结构
构造和代码分开
对构造过程有更好的控制 (因为分步)
4、prototype 原型
拥有一个clone()方法,可以复制自身
优点:
运行时增加删除
改变值指定新对象
用例:
会分裂的对象
5、sigleton 单件
在程序运行期间只存在一个实例的对象
优缺点:
可以受到访问控制
比全局变量更安全
相关文章推荐
- 23种设计模式分析(1):创建型模式
- 23种设计模式之我见----创建型模式(1)
- 纵横谈23种面向对象的设计模式--创建型
- 23种设计模式分析(2):创建型模式
- 23种设计模式(3)_创建型_抽象工厂模式(Abstract Factory Pattern)
- GoF23种设计模式之创建型模式之单态模式
- 23种设计模式之抽象工厂模式(创建型,2 AbstractFactory,c++实现)
- 23种设计模式----创建型模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式)
- 23种设计模式之五(创建型模式)Prototype模式
- 23种设计模式(4)_创建型_建造者模式(Builder Pattern)
- 【23种设计模式】创建型模式 > 三个工厂模式(简单工厂、抽象工厂、工厂方法)
- 【23种设计模式】创建型模式 > 单例模式
- GoF23种设计模式之创建型模式之单态模式
- 23种设计模式一:创建型单例模式
- Java_23种设计模式(二)----- 创建型模式
- GoF23种设计模式之创建型模式之抽象工厂模式
- 23种设计模式之工厂模式(创建型,1 Factory,c++实现)
- Java开发中的23种设计模式详解之一:5种创建型模式
- 23种设计模式之三(创建型模式)Singleton模式
- GoF23种设计模式之创建型模式之工厂方法模式