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

工作室推广网站推送者seo

工作室推广网站,推送者seo,css div怎么做网站,购物网站app开发Prototype原型模式——对象创建型模式 1.意图用原型示例制定创建对象的种类,并且通过拷贝这些原型创建新的对象。“创建一个对象,用一个原型指定它的种类,拷贝只是一种手法,不是目的。” 2.适用性当一个系统应独立于它的产品创建、…

Prototype原型模式——对象创建型模式


1.意图
用原型示例制定创建对象的种类,并且通过拷贝这些原型创建新的对象。
“创建一个对象,用一个原型指定它的种类,拷贝只是一种手法,不是目的。”

2.适用性
当一个系统应独立于它的产品创建、构成和表示时要用prototype模式
要实例化的类在运行时刻指定的
为了避免创建一个与产品类层次平行的工厂类层次时
当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并且克隆他们可能比每次用合适的状态手工实例化更加方便一些。


3.结构

参考:http://www.cnblogs.com/hjqxaly/archive/2010/09/09/1822460.html

image

 

 


4.参与者
prototype
声明一个克隆自身的接口
concretePrototype
实现一个克隆自身的操作
client
让一个原型克隆自身从而创建一个新的对象


5.协作
客户请求原型克隆自身


6.效果
对客户隐藏了具体的产品类,因此减少了客户知道的名字和数目。此外这些模式使得客户无需改变就可以使用与特定应用相关的类。
1)运行时刻增加和删除产品
允许只通过客户注册原型实例就可以将一个新的具体产品类并入系统,比创建型模式更加灵活
2)改变值以制定新对象
可以通过对象复合定义新的行为,你通过实例化已有类并且将这些实例注册为客户对象的原型,就可以有效定义新类别的对象。客户可以将职责代理给原型,从而表现出新的行为。
3)改变结构以制定新的对象
由部件和子部件来创建对象。
4)减少子类的构造
5)用类动态配置应用
运行时刻环境允许你动态将类装载到应用中


7.实现
在C++这样的静态语言中,类不是对象,并且在运行时刻能得到很少或者得不到任何的信息,在这样的场景中Prototype特别有用。
需要考虑的问题
1)使用一个原型管理器
当一个系统中的原型数目不固定时,要保持一个可用原型的注册表。客户不会自己管理但是会在注册表中存储和检索原型。
2)实现克隆操作
c++中的缺省拷贝构造器实现按成员拷贝,那么就意味着复制对象和源对象是共享指针的。
有时候需要各自独立,那么就需要深拷贝
3)初始化克隆对象
可能需要用一些值来初始化该对象的一些或者所有的内部状态。


8.代码示例

#include<iostream>
#include<string>
using namespace std;class prototype
{public:virtual prototype *clone(){};
};
class concretePrototype:public prototype
{public:concretePrototype(string str = "concretePrototype"){name = str;}concretePrototype(concretePrototype &cpy){cout<<"concretePrototype copying...\n"<<cpy.name<<endl;}prototype *clone(){return new concretePrototype(*this);}string name;
};int main()
{prototype *p = new concretePrototype("first object");prototype *pp = p->clone();return 0;
}

 

 

9.相关模式
AbstractFactory和prototype在某种意义上是相互竞争的。但是也可以一起使用
大量使用composite和decorator模式的设计也可以从prototype中获益

 

 

转载于:https://www.cnblogs.com/w0w0/archive/2012/05/18/2508332.html

http://www.lbrq.cn/news/2735857.html

相关文章:

  • 品牌网站建设信息提高基层治理效能
  • 全球疫情最新消息数据seo快速排名软件
  • 阿里云网站建设9元免费留电话的广告
  • 拼多多网站开发百度手机助手网页
  • 成都网站设计推荐天津seo排名公司
  • 网站制作公司的流程磁力宅
  • 人员优化方案电子商务seo是什么意思
  • wordpress视频防止下载文件惠州seo推广外包
  • 网站制作用的软件有哪些今日热搜第一名
  • 做网站需要掌握什么建站之星
  • 武汉手机网站建设公司竞价网官网
  • 做购物网站是怎么连接银行什么是网络推广
  • 如何注册海外域名优化是什么意思?
  • 国外做彩票网站违法吗手机端网站排名
  • 南宁百度网站建设公司百度关键词搜索推广
  • 用asp.net做网站的书百度贴吧网页版入口
  • 中企动力做的网站被百度屏蔽小程序开发公司排行榜
  • php 网站做分享功能抖音搜索引擎推广
  • 达人室内设计网站百度竞价开户费用
  • php网站开发案例成都百度seo推广
  • 电子商务网站项目建设阶段的划分福州网站制作推广
  • 南宁网站设计要多少钱营销推广文案
  • java做网站的优点seo关键词排名优化哪好
  • wordpress 判断是否为首页国内做seo最好公司
  • seo系统推广seo入门讲解
  • 二维码插件wordpress网站内容如何优化
  • 为什么网站建设公司越来越少百度的营销方式有哪些
  • 如何给公司做自己的网站百度关键词推广网站
  • 5个制造企业电子商务网站微信seo
  • 施工企业质量管理制度广州市口碑seo推广外包
  • 要想在Trae运行Java程序,该怎样配置Java环境?
  • 007TG洞察:特斯拉Robotaxi成本降低84%?技术驱动的效率革命对营销自动化的启示
  • 从前端框架到GIS开发系列课程(26)在mapbox中实现地球自转效果,并添加点击事件增强地图交互性
  • 第1篇_Go语言初探_环境搭建与HelloWorld
  • AI创业公司分析:Paloma
  • Spring Boot + Redis Sentinel (一主两从)测试案例