当前位置: 首页 > news >正文

又好又快自助建站软件开发工程师证书含金量

又好又快自助建站,软件开发工程师证书含金量,一个网站多久能做完,网站推广优化外包公司解释说明:使用原型实例指定待创建对象的类型,并且通过复制这个原型阿里创建型的对象 UML 结构图: 抽象原型(Prototype):规定了具体原型对象必须实现的clone()方法 具体原型(ConcretePrototype&…

解释说明:使用原型实例指定待创建对象的类型,并且通过复制这个原型阿里创建型的对象

UML 结构图:

抽象原型(Prototype):规定了具体原型对象必须实现的clone()方法

具体原型(ConcretePrototype):实现抽象原型类的clone()方法,它是可被复制的对象

访问类:使用具体原型类中的clone()方法来复制新的对象。

浅拷贝:创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址

深拷贝:创建一个新对象,属性中引用的其他对象也会被克隆,不再指向原有对象地址

优点:

    如果创建新的对象比较复杂,可以利用原型模式简化对象的创建过程,同时也能够提高效率。

    简化对象的创建,无需理会创建过程。

    可以在程序运行时(对象属性发生了变化)获得一份内容相同的实例,他们之间不会相互干扰。

缺点:

    在实现深拷贝时可能需要比较复杂的代码

    需要为每一个类配备一个克隆方法,而且该克隆方法需要对类的功能进行通盘考虑,这对全新的类来说不是很难,但对已有的类进行改造时,不一定是件容易的事,必须修改其源代码,违背了“开闭原则”。

适用场景

    如果创建新对象成本较大,可以利用已有的对象进行复制来获得。

    如果系统要保存对象的状态,而对象的状态变化很小,或者对象本身占内存不大的时候,也可以使用原型模式配合备忘录模式来应用。相反,如果对象的状态变化很大,或者对象占用的内存很大,那么采用状态模式会比原型模式更好。

    需要避免使用分层次的工厂类来创建分层次的对象,并且类的实例对象只有一个或很少的几个组合状态,通过复制原型对象得到新实例可能比使用构造函数创建一个新实例更加方便

#pragma once
#include <iostream>
#include <string>
/****原型模式 Prototype******/
using namespace std;
// 猴子
class Monkey
{
public:Monkey() {}virtual ~Monkey() {}virtual Monkey* Clone() = 0;  // 克隆virtual void Play() = 0;  // 玩耍
};
// 孙悟空
class SunWuKong : public Monkey
{
public:SunWuKong(string name) { m_strName = name; }~SunWuKong() {}// 拷贝构造函数SunWuKong(const SunWuKong& other){m_strName = other.m_strName;}Monkey* Clone(){// 调用拷贝构造函数return new SunWuKong(*this);}void Play(){cout << m_strName << " play Golden-Hoop-Stick" << endl;}
private:string m_strName;
};#include "prototype.h"
#ifndef SAFE_DELETE
#define SAFE_DELETE(p) { if(p){delete(p); (p)=NULL;} }
#endif
int main()
{// 孙悟空Monkey* pSWK = new SunWuKong("Qi Tian Da Sheng");// 克隆猴子猴孙Monkey* pSWK1 = pSWK->Clone();Monkey* pSWK2 = pSWK1->Clone();pSWK1->Play();pSWK2->Play();SAFE_DELETE(pSWK1);SAFE_DELETE(pSWK2);SAFE_DELETE(pSWK);getchar();return 0;
}

http://www.sczhlp.com/news/57407/

相关文章:

  • 许昌做网站联系电话宁波外贸网站制作
  • ie 10 常用网站wordpress 地图html代码
  • 新手什么网站做外贸开发公司哪个部门工作好
  • 电子网站建设ppt免费网站推广工具
  • 如何设计网站步骤海淀网站建设哪家公司好
  • 乌镇镇住房建设局网站怎样使用自己的电脑做网站
  • 网站栏目的分类代运营主要做什么
  • 一个服务器可以做两个网站wordpress后台菜单
  • 简单的个人网站下载华为软件开发流程
  • 千助做网站怎么样抚州城乡建设厅网站
  • 建设网站有什么要素构成北京设计企业网站
  • 热水器网站建设 中企动力wordpress主题克隆
  • 新手学做网站网站建设数据安全分析
  • 建设一个购物网站流程北京工商注册公司
  • 电商品牌网站开发运营桂林两江四湖在哪里
  • 网站排名优化查询wordpress新用户站点
  • 设计网站推广方案世界500强企业平均寿命
  • 网站建设价格正规网站建设与管理模拟试卷一
  • 常州建设公司网站如何做服装的微商城网站
  • 59zwd一起做网站莆田网站建设招标
  • asp模板网站修改威海西郊建设集团网站
  • 网站建设大题气动科技东莞网站建设
  • 网站注册页面怎么做数据验证码三亚做网站的公司
  • 广州市服务好的网站制作排名北京的网站制作
  • python人网站开发案例常州做网站公司
  • 北京网站建设上北京九五至尊网络wordpress 编辑器增强
  • 如何做网站的app制作开发公司
  • ftp建网站网站运营管理报告总结
  • 秦皇岛网站群发关键词绍兴网页设计
  • 电子商务搭建网站简单的网页制作软件