- Abstract Factory +++抽象工厂
- 实现方式: 抽象类
- Builder +++ 生成器
- --适用性
- 创建复杂对象的算法,应独立该对象组成及装配方式
- 允许构造的对象有不同表示
- --实现方向
- 接口必须足够普遍,
- 没有抽象类,(生成的产品相差甚大)
- 生成方法只声明,不定义
- --适用性
- Factory Method +++++工厂方法
- --适用性
- 不知道必须创建的对象的类
- 由子类指定他所创建的对象
- 将创建对象的职责交给多个"帮助子类"其中一个,并希望子类是代理者(信息局部化)
- --实现方向
- 考虑两种情况, 1)Creator类 为抽象类(并不提供所声明的工厂方法). 2)Creator类 为具体类(提供缺省的实现)
- 情况一:由子类实现,避免了不得不实例化"不可预见类"的问题
- 情况二:Creator类 遵守用一个独立的操作创建对象,这样子类才能重定义他们的创建方式, 保证了子类的设计者能够在必要的时候改变父类所实例化的对象的类.
- 特定语言的变化和问题
- 使用模板以避免创建子类
- 使用命名约定,清楚地说明你正在用工厂方法.
- 考虑两种情况, 1)Creator类 为抽象类(并不提供所声明的工厂方法). 2)Creator类 为具体类(提供缺省的实现)
- --适用性
- Prototype +++++原型
- --适用性
- 一个类不知道它所必须创建的对象的类的时候
- 一个类,由子类来指定它所创建的对象
- 将创建对象的职责交给多个"帮助子类"其中一个,并希望子类是代理者(信息局部化)
- --实现方法
- 使用一个管理器
- 当一个系统中的原型数目不固定时(动态创建或销毁),要保存一个可用原型的注册表.客户不用自己管理原型.客户克隆一个原型前向注册表请求该原型.这个注册表称为原型管理器
- 实现克隆操作 ,
- 初始化克隆对象
- 使用一个管理器
- --适用性
- Singleton ++++单件
- --适用性
- (单例)类只能有一个实例,且客户可以从一个众所周知的访问点访问他
- 这个唯一实例应该是通过子类化可扩展,并且客户无需更改代码就能使用一个扩展的实例
- --实现方法
- 保证一个唯一的实例
- 创建Singleton的子类
- --适用性
创建型模型 (一)整理
最新推荐文章于 2022-10-08 17:09:01 发布