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

网站收益做同性恋的珠宝网站

网站收益,做同性恋的珠宝网站,wordpress add_action(),建立网站 wordpress解释说明#xff1a;动态地给一个对象增加一些额外的职责。就扩展功能而言#xff0c;装饰模式提供了一种比使用子类更加灵活的替代方案 抽象构件#xff08;Component#xff09;#xff1a;定义一个抽象接口以规范准备收附加责任的对象 具体构件#xff08;ConcreteCom… 解释说明动态地给一个对象增加一些额外的职责。就扩展功能而言装饰模式提供了一种比使用子类更加灵活的替代方案 抽象构件Component定义一个抽象接口以规范准备收附加责任的对象 具体构件ConcreteComponent实现抽象构件通过装饰角色为其添加一些职责 抽象装饰类Decorator继承或实现抽象构件并包含具体构件的实例可以通过其子类扩展具体构件的功能 具体装饰类ConcreteDecorator实现抽象装饰的相关方法并给具体构件对象添加附加的责任 优点 Decorator 模式与继承关系的目的都是要扩展对象的功能但是 Decorator 可以提供比继承更多的灵活性。 通过使用不同的具体装饰类以及这些装饰类的排列组合可以创造出很多不同行为的组合。 缺点 这种比继承更加灵活机动的特性也同时意味着更加多的复杂性。 装饰模式会导致设计中出现许多小类如果过度使用会使程序变得很复杂。 装饰模式是针对抽象构建Component类型编程。但是如果要针对具体构件ConcreteComponent编程应该重新思考应用架构以及装饰者是否合适。当然也可改变 Component 接口增加新的公开的行为实现“半透明”的装饰者模式。在实际项目中要做出最佳选择。 适用场景 需要扩展一个类的功能或给一个类添加附加职责。 需要动态的给一个对象添加功能这些功能可以再动态的撤销。 需要增加由一些基本功能的排列组合而产生的非常大量的功能从而使继承关系变的不现实。 当不能采用生成子类的方法进行扩充时。一种情况是可能有大量独立的扩展为支持每一种组合将产生大量的子类使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏或类定义不能用于生成子类 #pragma once #include string using namespace std; // 所有饮料的基类 class IBeverage { public:virtual string Name() 0; // 名称virtual double Cost() 0; // 价钱 }; /********** 具体的饮料咖啡**********/ // 黑咖啡属于混合咖啡 class HouseBlend : public IBeverage { public:string Name() {return HouseBlend;}double Cost() {return 30.0;} }; // 深度烘培咖啡豆 class DarkRoast : public IBeverage { public:string Name() {return DarkRoast;}double Cost() {return 28.5;} };#pragma once #include component.h // 调味品 class CondimentDecorator : public IBeverage { public:CondimentDecorator(IBeverage* beverage) : m_pBeverage(beverage) {}string Name() {return m_pBeverage-Name();}double Cost() {return m_pBeverage-Cost();} protected:IBeverage* m_pBeverage; }; /********** 具体的饮料调味品**********/ // 奶油 class Cream : public CondimentDecorator { public:Cream(IBeverage* beverage) : CondimentDecorator(beverage) {}string Name() {return m_pBeverage-Name() Cream;}double Cost() {return m_pBeverage-Cost() 3.5;} }; // 摩卡 class Mocha : public CondimentDecorator { public:Mocha(IBeverage* beverage) : CondimentDecorator(beverage) {}string Name() {return m_pBeverage-Name() Mocha;}double Cost() {return m_pBeverage-Cost() 2.0;} }; // 糖浆 class Syrup : public CondimentDecorator { public:Syrup(IBeverage* beverage) : CondimentDecorator(beverage) {}string Name() {return m_pBeverage-Name() Syrup;}double Cost() {return m_pBeverage-Cost() 3.0;} };#include component.h #include decorator.h #include iostream #ifndef SAFE_DELETE #define SAFE_DELETE(p) { if(p){delete(p); (p)NULL;} } #endif int main() {/********** 黑咖啡 **********/IBeverage* pHouseBlend new HouseBlend();cout pHouseBlend-Name() : pHouseBlend-Cost() endl;// 黑咖啡 奶牛CondimentDecorator* pCream new Cream(pHouseBlend);cout pCream-Name() : pCream-Cost() endl;// 黑咖啡 摩卡CondimentDecorator* pMocha new Mocha(pHouseBlend);cout pMocha-Name() : pMocha-Cost() endl;// 黑咖啡 糖浆CondimentDecorator* pSyrup new Syrup(pHouseBlend);cout pSyrup-Name() : pSyrup-Cost() endl;/********** 深度烘培咖啡豆 **********/IBeverage* pDarkRoast new DarkRoast();cout pDarkRoast-Name() : pDarkRoast-Cost() endl;// 深度烘培咖啡豆 奶油CondimentDecorator* pCreamDR new Cream(pDarkRoast);cout pCreamDR-Name() : pCreamDR-Cost() endl;// 深度烘培咖啡豆 奶油 摩卡CondimentDecorator* pCreamMocha new Mocha(pCreamDR);cout pCreamMocha-Name() : pCreamMocha-Cost() endl;// 深度烘培咖啡豆 奶油 摩卡 糖浆CondimentDecorator* pCreamMochaSyrup new Syrup(pCreamMocha);cout pCreamMochaSyrup-Name() : pCreamMochaSyrup-Cost() endl;SAFE_DELETE(pSyrup);SAFE_DELETE(pMocha);SAFE_DELETE(pCream);SAFE_DELETE(pHouseBlend);SAFE_DELETE(pCreamMochaSyrup);SAFE_DELETE(pCreamMocha);SAFE_DELETE(pCreamDR);SAFE_DELETE(pDarkRoast);getchar();return 0; }
http://www.ho-use.cn/article/10819867.html

相关文章:

  • 公司网站怎么做包括什么做双语网站
  • 做网站电销话术西安抖音seo推广
  • 化妆品企业网站建设的缺点网站标题字符
  • 做网站服务器系统黄冈建设工程信息网
  • 做餐厅logo什么网站素材多phpcms 网站打不开
  • 长沙网站建设去哪好电子商务网站策划书3000字
  • 曼朗策划网站建设中国建设人才服务信息网是正规网站
  • 手机网站被做跳转做的网站电脑上跟手机上不一样
  • 网站后台地址忘记了佛山市禅城网站建设公司
  • 甘肃住房与城乡建设厅网站如何打开国外网站
  • 宁波网站建设团队排名wordpress登录400错误
  • 新闻类的网站如何做优化、计算机基础网站建设和网络安全
  • 教育类网站怎么做下载四川天府健康二维码
  • 上海的做网站的公司学做家常菜的网站有哪些
  • 网站建设书生商友做餐饮培训网站广告
  • 英德住房和城乡建设部网站哪个装修公司比较好
  • 做电商网站用什么技术项目公司crm系统管理
  • 建设公众号网站如何成立网站
  • 城乡住房建设部网站建设银行 网站首页
  • 网站结构分析怎么做试用网建设网站
  • 南京做网站需要多少钱郑州网站推
  • 手机网站开源模板宁晋seo网站优化排名
  • 注册外贸网站有哪些问题网站icp备案新规
  • 现代教育网站开发项目的研究中山骏域网站建设
  • 面向搜索引擎网站建设灌南住房建设局网站
  • 如何看到网站的制作公司河南软件开发
  • 省级建设网站域名解析wordpress主页
  • 网站制作网站制作公司章丘营销型网站设计公司
  • 织梦做的网站图片路径在哪里微网站推广
  • 惠州网站设计哪家好seo网络营销外包公司