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

网站备案 工信部中国企业信用信息查询系统

网站备案 工信部,中国企业信用信息查询系统,大兴专业网站建设公司,提供网站建设找哪家公司好动机 在软件系统中#xff0c;经常面临着某些结构复杂的对象的创建工作#xff1b;由于需求的变化#xff0c;这些对象经常面临着剧烈的变化#xff0c;但是它们却拥有比较稳定一致的接口。 之前的工厂方法和抽象工厂将抽象基类和具体的实现分开。原型模式也差不多#…动机 在软件系统中经常面临着某些结构复杂的对象的创建工作由于需求的变化这些对象经常面临着剧烈的变化但是它们却拥有比较稳定一致的接口。 之前的工厂方法和抽象工厂将抽象基类和具体的实现分开。原型模式也差不多但是原型模式将抽象基类合并。 原型模式的应用场景 原型模式特别适用于以下场景 对象的创建过程比较复杂或耗时。需要动态创建对象且对象的类型在运行时才能确定。需要避免重复初始化对象的开销。 #include iostream #include memory #include string// 抽象类 class ISplitter { public:virtual void split() 0;virtual std::unique_ptrISplitter clone() const 0; // 返回一个智能指针virtual ~ISplitter() {} };// 二进制拆分器 class BinarySplitter : public ISplitter { private:std::string data; // 假设这是需要拆分的二进制数据 public:BinarySplitter(const std::string data) : data(data) {}void split() override {std::cout Splitting binary data: data std::endl;// 具体的二进制拆分逻辑}std::unique_ptrISplitter clone() const override {return std::make_uniqueBinarySplitter(*this); // 深拷贝} };// 文本拆分器 class TxtSplitter : public ISplitter { private:std::string data; // 假设这是需要拆分的文本数据 public:TxtSplitter(const std::string data) : data(data) {}void split() override {std::cout Splitting text data: data std::endl;// 具体的文本拆分逻辑}std::unique_ptrISplitter clone() const override {return std::make_uniqueTxtSplitter(*this); // 深拷贝} };// 使用示例 int main() {// 创建原始对象BinarySplitter binarySplitter(01010101);TxtSplitter txtSplitter(Hello, World!);// 克隆对象std::unique_ptrISplitter binaryClone binarySplitter.clone();std::unique_ptrISplitter txtClone txtSplitter.clone();// 使用克隆对象binaryClone-split();txtClone-split();return 0; }模式定义 使用原型实例指定创建对象的种类然后通过拷贝这些原型来创建新的对象。 什么时候使用原型什么时候使用工厂最大的区分点就在于用工厂方法创建对象是不是非常简单的几个步骤就可以把这个对象创建出来还是说需要考虑对象很复杂的中间状态然后又很希望保留这个中间状态如果是后者的话就用原型。 要点总结 Prototype模式同样用于隔离类对象的使用者和具体类型(易变类)之间的耦合关系它同样要求这些“易变类”拥有稳定的接口。 Prototype模式对于“如何创建易变类”的实体对象“采用”原型克隆的方法来做它使得我们可以非常灵活地动态创建“拥有某些稳定接口”的新对象–所需工作仅仅是注册一个新类的对象(即原型)然后在任何需要的地方Clone。 Prototype模式中的Clone方法可以利用某些框架中的序列化来实现深拷贝。
http://www.hkea.cn/news/14557783/

相关文章:

  • 志愿者网站时长码怎么做线上推广平台报价
  • 网站数据库连接出错5G网站建设要多少个
  • 大学科技园东区 做网站asp做静态网站
  • 建设全球购多用户商城网站官方网站开发公司
  • 青岛做网站建设价格网站开发流程图
  • 开发手机网站网站建设制作、微信公众号
  • 中国最有名的建设网站淘宝拍卖网官网首页
  • 宁波 住房和建设局网站浙江建设职业技术学院oa网站
  • 做网站有哪个空间装修土巴兔
  • win7如何建设免费网站成品网站nike源码1688免费
  • 徐州市城乡建设局网站福建seo网站
  • 用来做微网站的多种语言网站建设
  • dedecms 调用 另一个网站网站左侧悬浮代码
  • 做网站好迷茫2017做网站挣钱吗
  • 潍坊专业网站建设国外服务器免备案
  • 网站建设好后有些什么资料最便宜做个网站多少钱
  • 模板网站对排名的影响之江汇学校网站建设
  • 在中国建设银行的网站上可以转账吗天津网页制作
  • 袜子的网站建设方案全响应网站制作
  • 内蒙古网站备案怎么做虚拟主机多个网站
  • 漳州市建设局网站6wordpress投稿vip
  • 百胜网站建设微信小程序开发网站建设
  • 用vps刷网站流量要怎么做买网站空间
  • 二维码制作网站有哪些成都黑帽seo
  • 做期货浏览哪些网站全国知名网站建设
  • 织梦做网站简单吗临沂网站制作专业
  • 北京高级网站开发微信前端 后端wordpress
  • 网站建设初学软件wordpress 调用指定文章
  • 静态网站 分页wordpress创建角色
  • 网站后期的维护品牌网站要这么做