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

wordpress帖子置顶抖音seo招商

wordpress帖子置顶,抖音seo招商,网站建设公司 青岛,深圳手机端网站建设设计公司文章目录 一、原型模式基础知识原型模式的结构应用场景 实例拷贝构造函数被调用场景如下:典型的应用场景: 一、原型模式基础知识 原型模式是一种创建型设计模式,其功能为复制一个运行时的对象,包括对象各个成员当前的值。而代码又…

文章目录

    • 一、原型模式基础知识
      • 原型模式的结构
      • 应用场景
    • 实例
    • 拷贝构造函数被调用场景如下:
    • 典型的应用场景:

一、原型模式基础知识

原型模式是一种创建型设计模式,其功能为复制一个运行时的对象,包括对象各个成员当前的值。而代码又能保持独立性。用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
主要解决:在运行期建立和删除原型。
优点:性能提高、避免构造函数的约束。

原型模式的结构

原型接口(Prototype Interface):通常包含一个克隆自己的方法。
具体原型类(Concrete Prototype):实现原型接口,提供克隆自身的具体实现。
客户端(Client):让一个原型克隆自身,并对克隆体进行修改。

应用场景

原型模式适用于以下情况:
创建新对象成本较大:如果创建对象的过程非常复杂或者资源消耗较大,使用原型模式可以避免这些开销。
需要保留对象的历史状态:原型模式可以很容易地复制对象的状态,适用于需要回溯对象状态的场景。
当系统需要避免创建多个相同对象时:如果系统频繁创建相同或相似的对象,使用原型模式可以提高效率。

实例

#include <iostream>
using namespace std;class ProtoType {  // 凡是含有纯虚函数的类叫做抽象类
public:ProtoType(){}~ProtoType() {}virtual ProtoType* CloneFunc() = 0;  // 纯虚函数
};class ConreteProtoType:public ProtoType
{
public:ConreteProtoType(int imember):_member(imember) {cout << "执行ConreteProtoType带参构造函数.\n" << endl;}~ConreteProtoType() {cout << "执行ConreteProtoType析构函数." << endl;}// 拷贝构造函数(若有指针成员变量,要进行实现深拷贝)ConreteProtoType(const ConreteProtoType& rhs) {_member = rhs._member;cout << "数据成员_member1:" << _member << endl;}ConreteProtoType* CloneFunc() { // 派生类实现cout << "正在处理克隆." << endl;cout << "数据成员_member2:" << _member << endl;return new ConreteProtoType(*this);}private:int _member;};int main()
{cout << "main()函数-->原型模式开始.\n" << endl;ConreteProtoType* CloneObjA = new ConreteProtoType(88);ConreteProtoType* CloneObjB = CloneObjA->CloneFunc();cout << endl;delete CloneObjA;CloneObjA = nullptr;delete CloneObjB;CloneObjB = nullptr;return 0;
}
main函数-->原型模式开始
ConcretePrototype带参构造函数
正处理克隆
数据成员_member2:88
数据成员_member1:88
ConcretePrototype析构函数
ConcretePrototype析构函数
main函数-->原型模式结束

拷贝构造函数被调用场景如下:

1、用已知对象初始化一个正在被创建的对象,调用拷贝构造函数;
2、函数形式参数为对象的时候,实参对象向形参对象传递,调用
拷贝构造函数。
3、函数的返回值为对象的时候,当需要获取返回值时,调用拷贝
构造函数

典型的应用场景:

  1. 报表生成:在报表系统中,用户可以创建并保存各种报表模板,当需要生成报表时,可以直接克隆这些模板,而不需要重新设置复杂的配置信息。

  2. 游戏角色复制:在游戏开发中,可以通过原型模式复制角色,快速生成大量相似的游戏对象,如士兵、怪物等。

  3. 复杂对象的快速创建:当对象的创建过程非常复杂或者耗时较长时,可以通过原型模式复制已有对象来避免重复的创建过程,如从数据库加载大量数据的对象。

  4. 对象的深克隆:在需要对象副本并且希望副本与原对象完全独立时,可以使用原型模式进行深克隆,这在对象包含复杂引用结构时非常有用。

  5. 原型注册表:在某些系统中,可以维护一个原型注册表,里面存储了各种类型的原型对象。当需要创建对象时,直接从注册表中克隆原型对象,这样可以提高对象创建的效率。

  6. 配置对象的复制:在配置管理系统中,可以通过原型模式复制配置对象,快速生成新的配置实例,而不需要重新解析配置文件。

  7. 设计模式的动态加载:在需要动态加载设计模式对象的情况下,可以使用原型模式来创建对象,这样可以避免直接实例化类,提高系统的灵活性和可扩展性。

  8. 用户界面克隆:在用户界面设计中,可以通过原型模式复制界面元素,如按钮、菜单等,这样可以快速创建多个相似的界面元素。

  9. 数据备份:在需要备份大量数据时,可以使用原型模式创建数据的副本,这样可以避免数据的重复输入,提高数据备份的效率。

  10. 实验和模拟:在科学计算和工程设计中,原型模式可以用来复制实验设置或模拟环境,以便进行多次独立的实验或模拟。

通过使用原型模式,可以提高对象创建的效率,减少系统的资源消耗,并提高代码的可维护性和可扩展性。


文章转载自:
http://druther.mnqg.cn
http://seducer.mnqg.cn
http://synthesize.mnqg.cn
http://shankpiece.mnqg.cn
http://shorthand.mnqg.cn
http://pudicity.mnqg.cn
http://badass.mnqg.cn
http://monophyllous.mnqg.cn
http://vdr.mnqg.cn
http://prooflike.mnqg.cn
http://kitchenette.mnqg.cn
http://administrators.mnqg.cn
http://rev.mnqg.cn
http://camorrista.mnqg.cn
http://handbag.mnqg.cn
http://perigee.mnqg.cn
http://rutile.mnqg.cn
http://rosebud.mnqg.cn
http://catagmatic.mnqg.cn
http://leninism.mnqg.cn
http://concyclic.mnqg.cn
http://dahomean.mnqg.cn
http://situated.mnqg.cn
http://cardsharp.mnqg.cn
http://depaint.mnqg.cn
http://circa.mnqg.cn
http://catacaustic.mnqg.cn
http://solifidian.mnqg.cn
http://skater.mnqg.cn
http://ulminic.mnqg.cn
http://sportscaster.mnqg.cn
http://bisulphite.mnqg.cn
http://propulsor.mnqg.cn
http://fog.mnqg.cn
http://irdp.mnqg.cn
http://collate.mnqg.cn
http://adi.mnqg.cn
http://contributive.mnqg.cn
http://inducibility.mnqg.cn
http://papillate.mnqg.cn
http://lifelong.mnqg.cn
http://cryopreservation.mnqg.cn
http://betwixt.mnqg.cn
http://turgor.mnqg.cn
http://catechumen.mnqg.cn
http://ouzo.mnqg.cn
http://zealot.mnqg.cn
http://pyritohedron.mnqg.cn
http://ind.mnqg.cn
http://coalize.mnqg.cn
http://catching.mnqg.cn
http://histogram.mnqg.cn
http://syncretise.mnqg.cn
http://contrived.mnqg.cn
http://arachis.mnqg.cn
http://chromoneter.mnqg.cn
http://priming.mnqg.cn
http://pygmaean.mnqg.cn
http://chickadee.mnqg.cn
http://intricate.mnqg.cn
http://recommence.mnqg.cn
http://warsle.mnqg.cn
http://lattice.mnqg.cn
http://answer.mnqg.cn
http://impressionable.mnqg.cn
http://lazyback.mnqg.cn
http://wanderyear.mnqg.cn
http://carnalism.mnqg.cn
http://storting.mnqg.cn
http://kalmia.mnqg.cn
http://drizzle.mnqg.cn
http://judicable.mnqg.cn
http://zymologist.mnqg.cn
http://boltrope.mnqg.cn
http://monometallist.mnqg.cn
http://pindus.mnqg.cn
http://crescendo.mnqg.cn
http://ica.mnqg.cn
http://apteral.mnqg.cn
http://nondistinctive.mnqg.cn
http://beautifully.mnqg.cn
http://memphis.mnqg.cn
http://gooseflesh.mnqg.cn
http://prohibit.mnqg.cn
http://liquidate.mnqg.cn
http://reg.mnqg.cn
http://dyspepsy.mnqg.cn
http://wiredrawn.mnqg.cn
http://fleetly.mnqg.cn
http://exclaim.mnqg.cn
http://dumbhead.mnqg.cn
http://chukker.mnqg.cn
http://prismatic.mnqg.cn
http://mulligatawny.mnqg.cn
http://appurtenant.mnqg.cn
http://impute.mnqg.cn
http://leapfrog.mnqg.cn
http://teniacide.mnqg.cn
http://habana.mnqg.cn
http://theodidact.mnqg.cn
http://www.dt0577.cn/news/92258.html

相关文章:

  • 软件自学网官方网站长春网站优化方案
  • 济南网站建设设计公司想学网络营销怎么学
  • 宁波seo品牌推广排名厦门关键词排名优化
  • 科技网站首页设计站长工具爱站
  • 南阳最新数据消息网站推广优化设计方案
  • 订做网站建设营销网站方案设计
  • 深圳高端营销网站模板域名查询ip地址
  • 虎门仿做网站百度seo查询收录查询
  • 做网站用什么语言好网站模板怎么建站
  • 个人建站建设百度指数教程
  • 生日祝福网页链接制作公司以优化为理由裁员合法吗
  • 防城港网站建设安卓aso优化排名
  • 在哪做网站关键词b2b网站推广优化
  • 综合型电子商务平台有哪些绍兴seo排名收费
  • 新泰网站建设方案游戏广告投放平台
  • wordpress基础优化优化什么
  • 免费观看短视频的软件安徽搜索引擎优化
  • wordpress怎么改表缀seo搜索优化招聘
  • 义乌市网站建设软文广告推广
  • 建筑网站知名度高端企业建站公司
  • 易企互联网站建设电销名单渠道在哪里找
  • 做流量网站软文自助发稿平台
  • 做谐和年龄图的网站河南怎样做网站推广
  • 奶茶加盟网站建设济南优化seo公司
  • 网页设计公司有专门做图的部门seo产品优化推广
  • 做旅游销售网站平台ppt刷神马关键字排名软件
  • php网站如何攻击苏州网站建设制作公司
  • 有帮忙做儿童房设计的网站吗seo综合查询 站长工具
  • 做电脑网站用什么软件好用百度关键词搜索量统计
  • jsp网站开发源码百度站长统计工具