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

关于dw做网站宁波seo网络推广咨询价格

关于dw做网站,宁波seo网络推广咨询价格,濮阳 网站建设,wordpress用户集成设计模式最大的作用就是在变化和稳定中间寻找隔离点,然后分离它们,从而管理变化。将变化像小兔子一样关到笼子里,让它在笼子里随便跳,而不至于跳出来把你整个房间给污染掉。 设计思想 动态地将责任附加到对象上,若要扩…

设计模式最大的作用就是在变化和稳定中间寻找隔离点,然后分离它们,从而管理变化。将变化像小兔子一样关到笼子里,让它在笼子里随便跳,而不至于跳出来把你整个房间给污染掉。

设计思想

动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

装饰类继承自超类,继承是为了有正确的类型,而非继承超类的行为。

业务场景

假定你需要给蜜雪冰城设计一套售卖系统。他们家所有的饮料假设只有描述和价格两种属性,你可能又会想到用继承去解决:先抽象一个奶茶父类,然后每种奶茶都继承该父类并实现各自的display和cost方法。

你很快就会发现这么做有很多麻烦:首先,这家奶茶店所有的奶茶种类加一起数量可能有几十种数百种,这也就意味着你的子类会有很多很多;其次,这么设计似乎并不符合实际的业务场景,人们点奶茶的时候并不是一成不变的,有的不要珍珠,有的双倍糖等等,加的调料和份数也不一样,那么最后如何描述这杯奶茶以及计算其价格就成了问题。

代码案例

#include<iostream>
#i#include<iostream>
#include<vector>
#include<algorithm>
#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_ptr<Beverage> be) :Condimentecorator(), beverage(be) {}std::string getDescription() {return (beverage->getDescription() + " Mocha");}double cost(){return 0.2 + beverage->cost();}public:std::shared_ptr<Beverage> beverage;
};//Soy调料装饰者
class Soy :public Condimentecorator {
public:Soy(std::shared_ptr<Beverage> be):Condimentecorator(),beverage(be){}std::string getDescription(){return (beverage->getDescription() + " Soy");}double cost(){return 0.15 + beverage->cost();}
public:std::shared_ptr<Beverage> beverage;
};//Whip调料装饰者
class Whip :public Condimentecorator {
public:Whip(std::shared_ptr<Beverage> be) :Condimentecorator(), beverage(be) {}std::string getDescription(){return (beverage->getDescription() + " Whip");}double cost(){return 0.10 + beverage->cost();}
public:std::shared_ptr<Beverage> beverage;
};int main()
{std::shared_ptr<Beverage> beverage = std::make_shared<Espresso>();std::cout << beverage->getDescription()<<" costs: "<<beverage->cost() << std::endl;std::shared_ptr<Beverage> beverage2 = std::make_shared<DarkRoast>();std::cout << beverage2->getDescription() << " costs: " << beverage2->cost() << std::endl;beverage2 = std::make_shared<Mocha>(beverage2);std::cout << beverage2->getDescription() << " costs: " << beverage2->cost() << std::endl;beverage2 = std::make_shared<Mocha>(beverage2);std::cout << beverage2->getDescription() << " costs: " << beverage2->cost() << std::endl;beverage2 = std::make_shared<Whip>(beverage2);std::cout << beverage2->getDescription() << " costs: " << beverage2->cost() << std::endl;auto it = std::make_shared<Whip>(beverage2);std::cout << it->cost() << " " << it->getDescription() << std::endl;std::cout << it->beverage->cost() << " " << it->beverage->getDescription() << std::endl;return 0;
}
http://www.ds6.com.cn/news/113642.html

相关文章:

  • 免费建设网站申请qq推广引流网站
  • 什么行业做网站合适宣传软文是什么
  • 有什么网站做投标设计广告投放平台有哪些
  • 做搜索引擎优化网站费用苹果cms播放器
  • html5商城网站网址安全检测中心
  • 摄影网站 蜂鸟百度关键词排名技术
  • 北京网站开发网站建设咨询网址seo优化排名
  • 网站备案 失败hs网站推广
  • 电力建设官方网站网站排名软件优化
  • 如何在自己网站开发互动视频教程合肥seo整站优化网站
  • 网站开发的公司排名广州seo公司官网
  • 做关于什么内容的网站软文广告经典案例短的
  • 注册好网站以后怎么做google网页版
  • 用ul做的网站为何浮动不上去深圳头条新闻
  • 目前做那些网站能致富seo兼职工资一般多少
  • 豪华网站设计关键词提取
  • 广西梧州市住房和城乡建设局网站深圳百度推广客服
  • wordpress无法进入文章熊猫seo实战培训
  • 无锡网站建设818gx广告推广渠道
  • 免费网站建设创意哪里有培训班
  • 自助手机建站百度怎么优化关键词排名
  • 网站建设公司怎么盈利广州疫情今天最新消息
  • 网站界面设计策划书怎么做成都seo技术经理
  • 做情趣导航网站可以吗优化关键词排名哪家好
  • 怎么查看网站的dns网站seo外包公司有哪些
  • semi北京seo网站优化培训
  • 施工企业分录青岛seo排名收费
  • 乐清市建设规划局网站百度爱采购推广效果怎么样?
  • 南山区公司网站制作镇江百度推广
  • Wordpress微博样式郑州谷歌优化外包