prototype模式

Prototype模式

.意图

用原型实例创建对象的种类,并且通过拷贝这些原型创建新的对象

.适用性

1.实例化的类是在运行时刻指定时,入动态装载.

2.当一个类的实例只能由几个不同状态组合中的一种时,.建立相应数目的原型并克隆他们可能比每次用手工实例化类更方便一些.

.使用场合

当一个系统应该独立于产品的创建,构成和表示时,可以使用原型模式.

.深浅复制

浅复制:复制引用

深复制:复制对象

.代码

#include<iostream>

usingnamespacestd;

//prototypemode

classCColor

{

public:

    virtualCColor*Clone(){}

    int     nColor=0;

};

classCProductColor:publicCColor

{

public:

    virtualCColor*Clone()

    {

    //浅复制,复制引用

    returnthis;

    //深复制,复制对象

    CProductColor*cloneType=newCProductColor();

    returncloneType;

    }

};

 

intmain()

{

    cout<<"HelloWorld!"<<endl;

    CColor*Color1=newCProductColor();

    Color1->nColor=100;

    CColor*Color2=Color1->Clone();

    cout<<"Color1.color="<<Color1->nColor<<"  Color2.color="<<Color2->nColor<<endl;

    Color2->nColor=200;

    cout<<"Color1.color="<<Color1->nColor<<"  Color2.color="<<Color2->nColor<<endl;

 

    return0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值