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

购物网站的推广哈尔滨公共资源交易网建设工程

购物网站的推广,哈尔滨公共资源交易网建设工程,高质量网站外链平台,网站代运营多少钱一个月一、原型模式 1.定义 用原型实例指定创建对象的种类#xff0c;并且通过拷贝这些原型创建新的对象。 原型模式允许通过复制现有的对象来创建新对象#xff0c;而不是通过实例化类来创建。这种方式可以避免创建重复的对象#xff0c;从而提高性能和降低内存消耗。 2.组成 …一、原型模式 1.定义 用原型实例指定创建对象的种类并且通过拷贝这些原型创建新的对象。 原型模式允许通过复制现有的对象来创建新对象而不是通过实例化类来创建。这种方式可以避免创建重复的对象从而提高性能和降低内存消耗。 2.组成 抽象原型声明可以克隆自身的接口。具体原型继承自抽象原型实现具体的克隆方法必要时还需要自定义拷贝构造函数。客户端通过原型创建新的实例。 3.示例 //蛋糕抽象类原型类 class Cake { protected:string* name;double* price; public:virtual Cake* clone() 0;virtual void showInfo() 0;virtual ~Cake() {} };//巧克力蛋糕具体蛋糕类 class ChocolateCake :public Cake { public:ChocolateCake() {name new string(Chocolate cake);price new double(15.0);}~ChocolateCake() {delete name;delete price;}ChocolateCake(const ChocolateCake other) {name new string(*other.name);price new double(*other.price);}virtual Cake* clone() override {return new ChocolateCake(*this);}virtual void showInfo() override {cout *name *price $ endl;} };//水果蛋糕具体蛋糕类 class FruitCake :public Cake { public:FruitCake() {name new string(Fruit cake);price new double(12.0);}~FruitCake() {delete name;delete price;}FruitCake(const FruitCake other) {name new string(*other.name);price new double(*other.price);}virtual Cake* clone() override {return new FruitCake(*this);}virtual void showInfo() override {cout *name *price $ endl;} }; 测试代码 Cake* c1 new ChocolateCake(); Cake* c2 c1-clone(); Cake* c3 new FruitCake(); Cake* c4 c3-clone(); c1-showInfo(); c2-showInfo(); c3-showInfo(); c4-showInfo(); delete c1; delete c2; delete c3; delete c4; 输出结果 Chocolate cake 15$ Chocolate cake 15$ Fruit cake 12$ Fruit cake 12$ 二、代理模式 1.定义 为其它对象提供一种代理以控制对这个对象的访问。 代理模式通过引入一个新的代理对象来间接访问原始对象从而实现对原始对象的控制和管理可以用于实现远程代理、虚拟代理、保护代理和智能指引等。 2.组成 抽象主题声明原始对象和代理对象的共同接口。具体主题继承自抽象主题的原始对象即客户端实际想要访问的对象。代理继承自抽象主题内部包含一个指向具体主题的指针代理对象可以控制对具体主题的访问也可以在访问前后执行额外的操作。 3.示例 //明星的工作抽象主题 class StarWork { public:virtual void doWork() 0;virtual ~StarWork() {} };//明星具体主题 class SingerStar :public StarWork { public:virtual void doWork() override {cout 歌手正在表演。 endl;} };//经纪人代理 class StarAgent :public StarWork { private:SingerStar* star;bool is_start; public:StarAgent() :star(new SingerStar()), is_start(true) {}~StarAgent() {delete star;}virtual void doWork() override {if (is_start) {cout 经纪人谈好出场费、安排行程。 endl;star-doWork();cout 经纪人处理后续事务。 endl;}} }; 测试代码 StarAgent* agent new StarAgent(); agent-doWork(); delete agent; 输出结果 经纪人谈好出场费、安排行程。 歌手正在表演。 经纪人处理后续事务。 三、适配器模式 1.定义 将一个类的接口转换成客户希望的另一个接口。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 2.组成 目标接口客户期望使用的接口也是适配器类需要实现的接口。适配者定义一个已经存在的接口这个接口需要适配。对象适配器持有一个指向适配者的指针将适配者的接口与目标接口进行适配。 3.示例 //目标接口代表新的充电器接口 class NewCharger { public:virtual void charge() 0; };//适配者代表旧款手机充电接口 class OldCharger { public:void oldCharge() {cout Charging with old interface. endl;} };//适配器将旧接口适配到新接口 class Adapter :public NewCharger { private:OldCharger* oldPhone; public:Adapter(OldCharger* old) :oldPhone(old) {}virtual void charge() override {cout Using adapter to charge: endl;oldPhone-oldCharge();} }; 测试代码 OldCharger* old_phone new OldCharger(); Adapter* charger_dapter new Adapter(old_phone); charger_dapter-charge(); delete charger_dapter; delete old_phone; 输出结果 Using adapter to charge: Charging with old interface. 四、组合模式 1.定义 将对象组合成树形结构以表示“部分-整体”的层次结构。 组合模式使得用户对单个对象和组合对象的使用具有一致性即客户端可以统一地处理单个对象和对象组合而无需区分它们的具体类型。 2.组成 抽象组件定义组合对象和叶子对象的公共接口用于访问和管理组件的子部件。叶子节点表示树形结构中的最底层节点它们没有子节点。组合节点定义有枝节点行为用来存储子部件并实现与其相关的操作如增加和删除等。 3.示例 //组件接口抽象节点 class CompanyComponent { public:CompanyComponent(const string n) :name(n) {}virtual void display(int depth 0) 0;virtual int getEmployeeCount() 0;virtual ~CompanyComponent() {} protected:string name; };//员工叶子节点 class Employee :public CompanyComponent { public:using CompanyComponent::CompanyComponent;virtual void display(int depth 0) override {for (int i 0; i depth; i)cout ;cout Emplyee: name endl;}virtual int getEmployeeCount() override {return 1;} };//部门组合节点 class Department :public CompanyComponent { private:listshared_ptrCompanyComponent children; public:using CompanyComponent::CompanyComponent;void add(shared_ptrCompanyComponent p) {children.push_back(p);}void remove(shared_ptrCompanyComponent p) {children.remove(p);}virtual void display(int depth 0) override {for (int i 0; i depth; i)cout ;cout Department: name endl;for (const auto p : children)p-display(depth 1);}virtual int getEmployeeCount() override {int cnt 0;for (const auto p : children)cnt p-getEmployeeCount();return cnt;} }; 测试代码 shared_ptrDepartment ceo make_sharedDepartment(CEO Office); shared_ptrDepartment devDep make_sharedDepartment(Development Department); shared_ptrEmployee dev1 make_sharedEmployee(Developer1); shared_ptrEmployee dev2 make_sharedEmployee(Developer2); shared_ptrEmployee dev3 make_sharedEmployee(Developer3); devDep-add(dev1); devDep-add(dev2); devDep-add(dev3); auto marDep make_sharedDepartment(Marketing Department); auto mar1 make_sharedEmployee(Marketer1); marDep-add(mar1);ceo-add(devDep); ceo-add(marDep); ceo-display(); cout Total employee count: ceo-getEmployeeCount() endl endl;devDep-remove(dev2); devDep-remove(dev3); ceo-display(); cout Total employee count: ceo-getEmployeeCount() endl; 输出结果 Department: CEO OfficeDepartment: Development DepartmentEmplyee: Developer1Emplyee: Developer2Emplyee: Developer3Department: Marketing DepartmentEmplyee: Marketer1 Total employee count: 4Department: CEO OfficeDepartment: Development DepartmentEmplyee: Developer1Department: Marketing DepartmentEmplyee: Marketer1 Total employee count: 2
http://www.tj-hxxt.cn/news/136764.html

相关文章:

  • 做个人网站用什么程序如何制作微信小程序店铺
  • 单页设计网站wordpress 收款
  • wordpress电影站主题租服务器去哪里租
  • 网站关键词在哪里修改制作app免费网站模板
  • 学校网站建设的软件环境网络维护与故障解决
  • php建站系统源码推广app注册一个一般多少钱
  • 广东网站设计服务商智能手机网站模板
  • 17网站一起做网店appicp备案的网站名称
  • 怎么把服务器做网站西安网络运营公司有哪些
  • 建设h5响应式网站有什么建议怎么创建自己公司的网站
  • 网站建设开发熊掌号大连公司网站开发
  • 蓬莱做网站联系电话江苏做网站的企业
  • 网站开发哪些合肥设网站
  • 如何建立公司网站电话jcms网站建设
  • 建设网站会员汕头网站推广费用
  • 数据库课程设计报告网站开发网络推广公司哪个好
  • 邯郸做移动网站的地方网站建设公司成就
  • 赣州网站建设优化服务网站开发合同变更
  • 做的比较好的手机网站付费网站搭建
  • 网站建设范围百度知道个人中心
  • 合肥企业网站建设公司哪家好餐饮公司网站模板下载
  • 网站建设手机网站免费下载代码项目的网站
  • 黄石有哪些做视觉网站的公司网站 app微信三合一
  • 百度做公司网站360站长工具
  • 信用建设网站动态信息报送制度云软件网站建设
  • 网站搭建的意义rust做网站
  • 环保主题静态网站廊坊网站关键词推广
  • 怎么做网站代拍2023网页设计十大品牌
  • 案例学——网页设计与网站建设泡泡h5网页制作
  • 怎么做网站导航三门峡做网站