设计模式之原型学习笔记


一、原型模式基本概念

1.作用

用原型指定创建对象的种类,并通过拷贝这些对象去创建新的对象
即为每种类型对象提供一个“原型模板”,在创建同种类型对象时,直接拷贝“原型模板”。

2.适用场景

当直接创建对象的代价比较大(如类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等)和性能和安全要求比较高时,则适合采用这种模式。

二、C++伪代码实例

1.场景说明

配钥匙:
一个配钥匙的服务商,客户需要配什么钥匙,他是不知道的,但他提供这种服务,要配好钥匙,就必须先看到钥匙的“原型”才可以去配好

/*以配钥匙为例*/
/*配钥匙的商人,他只提供配钥匙的服务*/
class KEY_REPLICATOR{
 virtual KEY_REPLICATOR clone() = 0;
 /*其它省略.......*/
};

/*钥匙A的原型,它继承了钥匙商的配钥匙服务*/
class KEY_A_PROTOTYPE : public KEY_REPLICATOR
{
    KEY_A_PROTOTYPE(){
        /*初始化钥匙A原型*/
    }
    ~KEY_A_PROTOTYPE(){
        /*销毁钥匙A原型*/
    }
 KEY_REPLICATOR clone(){
     /*配钥匙A时,复制一个钥匙A原型备份*/
     /*注:这里复制构造函数省略*/
     return new KEY_A_PROTOTYPE(*this);
 }
 /*其它省略.......*/
};


/*客户使用*/
/*创建钥匙A的原型*/
KEY_A_PROTOTYPE * key_a_prototype = new KEY_A_PROTOTYPE();
/*配一把钥匙A*/
KEY_A_PROTOTYPE * key_a1 = key_a_prototype->clone();
/*配第二把钥匙A*/
KEY_A_PROTOTYPE * key_a2 = key_a_prototype->clone();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值