[设计模式笔记]一. 创建型模式--5.Prototype模式(原型)(二)

场景


假设飞机由自我复制的能力生产飞机时先生成一部原型机因为生产原型机需要对原型机的各种参数进行调试调试出飞机的最好的参数这些参数确定后就可以进行批量生产批量生产就相当于飞机的Clone如果生产每一台飞机都像生产原型机那样那效率是很低下的.


角色


Client 使用者负责飞机部件的生产流程调用CPlanBuilder提供的接口.

CPlanePrototype提供Clone接口.

CHelicopterCBattlePlane能自我复制的飞机.




图1


使用


// 伪代码

// 生产原型机

CHelicopter* pCHelicopter = new CHelicopter;

pCHelicopter->Init();

CPlanePrototype* pCPlanePrototype = pCHelicopter;

// Client

CPlanePrototype* p = pCPlanePrototype->Clone();

// 需要多少, Clone多少.


我的理解


1. 生产原型机的过程你可以使用Abstractr Factory模式, Builder模式等(如果是一些复杂对象的话). 用户需要某对象时, Clone就可以了.

2. pCPlanePrototype这个对象需要正确的管理好这就是原型.

3. 某些对象的状态很复杂而且经常变化时, Clone很好用因为对象自己最熟悉自己的状态把各种状态的赋值封装在Clone非常符合"高内聚低耦合"原则.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值