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

南京移动网站建设效果好做网站公司宁波

南京移动网站建设效果好,做网站公司宁波,网站建设结构,免费ppt模板年终总结设计模式最大的作用就是在变化和稳定中间寻找隔离点#xff0c;然后分离它们#xff0c;从而管理变化。将变化像小兔子一样关到笼子里#xff0c;让它在笼子里随便跳#xff0c;而不至于跳出来把你整个房间给污染掉。 设计思想 动态地将责任附加到对象上#xff0c;若要扩… 设计模式最大的作用就是在变化和稳定中间寻找隔离点然后分离它们从而管理变化。将变化像小兔子一样关到笼子里让它在笼子里随便跳而不至于跳出来把你整个房间给污染掉。 设计思想 动态地将责任附加到对象上若要扩展功能装饰者提供了比继承更有弹性的替代方案。 装饰类继承自超类继承是为了有正确的类型而非继承超类的行为。 业务场景 假定你需要给蜜雪冰城设计一套售卖系统。他们家所有的饮料假设只有描述和价格两种属性你可能又会想到用继承去解决先抽象一个奶茶父类然后每种奶茶都继承该父类并实现各自的display和cost方法。 你很快就会发现这么做有很多麻烦首先这家奶茶店所有的奶茶种类加一起数量可能有几十种数百种这也就意味着你的子类会有很多很多其次这么设计似乎并不符合实际的业务场景人们点奶茶的时候并不是一成不变的有的不要珍珠有的双倍糖等等加的调料和份数也不一样那么最后如何描述这杯奶茶以及计算其价格就成了问题。 代码案例 #includeiostream #i#includeiostream #includevector #includealgorithm #include string #include memory//饮料抽象类 class Beverage { public:virtual ~Beverage() {};virtual std::string getDescription() 0;virtual double cost() 0; protected:std::string description;}; //调料装饰者类 class Condimentecorator :public Beverage { public:virtual ~Condimentecorator() {};virtual std::string getDescription() 0; };//espresso 饮料类 class Espresso :public Beverage { public:Espresso() :Beverage(){description Espresso;}std::string getDescription() { return description; }double cost() {return 1.99;} };//houseblend 饮料类 class HouseBlend :public Beverage { public:HouseBlend() :Beverage(){description HouseBlend;}std::string getDescription() { return description; }double cost() {return 0.89;} };//DarkRoast 饮料类 class DarkRoast :public Beverage { public:DarkRoast() :Beverage(){description DarkRoast;}std::string getDescription() { return description; }double cost() {return 0.99;} };//Decat 饮料类 class Decat :public Beverage { public:Decat() :Beverage(){description Decat;}std::string getDescription() { return description; }double cost(){return 1.05;} };//Mocha调料装饰者 class Mocha :public Condimentecorator {public:Mocha(std::shared_ptrBeverage be) :Condimentecorator(), beverage(be) {}std::string getDescription() {return (beverage-getDescription() Mocha);}double cost(){return 0.2 beverage-cost();}public:std::shared_ptrBeverage beverage; };//Soy调料装饰者 class Soy :public Condimentecorator { public:Soy(std::shared_ptrBeverage be):Condimentecorator(),beverage(be){}std::string getDescription(){return (beverage-getDescription() Soy);}double cost(){return 0.15 beverage-cost();} public:std::shared_ptrBeverage beverage; };//Whip调料装饰者 class Whip :public Condimentecorator { public:Whip(std::shared_ptrBeverage be) :Condimentecorator(), beverage(be) {}std::string getDescription(){return (beverage-getDescription() Whip);}double cost(){return 0.10 beverage-cost();} public:std::shared_ptrBeverage beverage; };int main() {std::shared_ptrBeverage beverage std::make_sharedEspresso();std::cout beverage-getDescription() costs: beverage-cost() std::endl;std::shared_ptrBeverage beverage2 std::make_sharedDarkRoast();std::cout beverage2-getDescription() costs: beverage2-cost() std::endl;beverage2 std::make_sharedMocha(beverage2);std::cout beverage2-getDescription() costs: beverage2-cost() std::endl;beverage2 std::make_sharedMocha(beverage2);std::cout beverage2-getDescription() costs: beverage2-cost() std::endl;beverage2 std::make_sharedWhip(beverage2);std::cout beverage2-getDescription() costs: beverage2-cost() std::endl;auto it std::make_sharedWhip(beverage2);std::cout it-cost() it-getDescription() std::endl;std::cout it-beverage-cost() it-beverage-getDescription() std::endl;return 0; }
http://www.dnsts.com.cn/news/274537.html

相关文章:

  • 百度关键词热度查询工具长春seo公司
  • 成品免费网站源码wordpress hook 数据库
  • 地方网站盈利高端的网站设计制作
  • 前海艾爻网站 建设wordpress支持主机
  • 网站建设财务项目管理制度提供专业网站建设平台
  • 重庆网站建设案例网易暴雪最新消息
  • 营销型网站北京昆明专业网站营销
  • 网站开发的概念wordpress数据库名和主机怎么填
  • 小企业公司网站建设3d建模平台
  • 住房和城乡建设部网站焊工查询个人网页设计制作题目目的
  • 网站上面如何加入视频厦门seo公司
  • 哪些网站会盗取本地广东中山网站建设
  • 网站动态和静态去哪里推广软件效果好
  • 威海精神文明建设办公室网站即墨医院网站制作公司
  • 做网站 页面自适应最好用的搜索引擎
  • 义乌 网站建设2018年网站开发语言
  • 技术合同 网站开发2016wordpress淘宝客程序
  • 有源代码如何做网站开发一个同城app需要多少钱
  • 网站栏目优化wordpress 底部样式
  • 北京市的重点门户网站有哪些大有网网站
  • 合肥行业网站建设定制一个企业网站多少钱
  • 27寸显示器网站建设微网站建设哪里便宜
  • 北京网站建设哪里好网页设计实验报告总结模板
  • 网站建设方案书例子免费推广软件平台
  • 山西省建设资格注册中心网站oa系统登录网址
  • 企业网站空间不足怎么办网站商城与网站区别
  • 1688做网站需要多少钱企业网盘方案
  • 网站建设div可拖拽布局免费字体logo设计
  • 怎么更改网站关键词韩雪冬模板网站
  • 做企业网站国内发展可以看地图实景的软件不要钱的