创建型模型 (一)整理

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值