码迷,mamicode.com
首页 > 其他好文 > 详细

原型模式

时间:2020-07-26 00:13:01      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:png   span   alt   strlen   构造   对象   技术   class   原型   

定义:

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

  和重写拷贝构造函数一样,能简单的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();

 

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

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

原型模式

标签:png   span   alt   strlen   构造   对象   技术   class   原型   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!