首页 > 其他 > 详细

原型模式

时间:2020-07-25 20:58:27      阅读:53      评论:0      收藏:0      [点我收藏+]

定义:

  从一个对象在创建另外一个可定制的对象,而且不需知道任何创建的细节。

  和重写拷贝构造函数一样,能简单的clong一个对象。注意深浅拷贝。

结构图:

  技术分享图片

 

 

 

 

 

 代码:

//抽象原型类,定义clong接口

class Prototype

{

public:

  Prototype Clong();

}

//具体原型类

class ConcretePrototype : Prototype

{

 //这个直接=就可以

    int IMyInt;
   //这个需要strncopy,不然浅拷贝
    char cMyChar[10]; 

public:

  Prototype Clong()

  {

    ConcretePrototype* CConcretePrototype = new ConcretePrototype();

    CConcretePrototype.IMyInt = this.IMyInt;

    strncpy(CConcretePrototype.cMyChar,this.cMyChar,10);

    return CConcretePrototype;

  ]

]

//客户端代码:

ConcretePrototype* CConcretePrototypeA = new ConcretePrototype();

CConcretePrototypeA.IMyInt = 7;

string strName = "hasake";

strncpy(CConcretePrototypeA.cMyChar,strName,strlen(strName));

 ConcretePrototype* CConcretePrototypeB = CConcretePrototypeA.Clong();

 

优点:能封装“某些结构复杂的对象"的创建工作;

缺点:需要注意深浅拷贝问题

原型模式

原文:https://www.cnblogs.com/haosk/p/13376642.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!