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

哪里有网站制作建设百度招聘

哪里有网站制作建设,百度招聘,server 2008 iis 部署网站,韩国电视剧设计模式最大的作用就是在变化和稳定中间寻找隔离点,然后分离它们,从而管理变化。将变化像小兔子一样关到笼子里,让它在笼子里随便跳,而不至于跳出来把你整个房间给污染掉。 设计思想 动态地将责任附加到对象上,若要扩…

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

设计思想

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

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

业务场景

假定你需要给蜜雪冰城设计一套售卖系统。他们家所有的饮料假设只有描述和价格两种属性,你可能又会想到用继承去解决:先抽象一个奶茶父类,然后每种奶茶都继承该父类并实现各自的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.dinnco.com/news/8525.html

相关文章:

  • java做的小说网站的源代码推广方案策划
  • 给别人做网站会连累自己吗seo优化专员工作内容
  • wordpress在线文档下载搜索引擎优化关键字
  • 网站设计的目的和功能对网站进行seo优化
  • 做网站跳转竞价点击软件工具
  • 阿里云突发性能适用于做网站吗网站建设公司哪家好?该如何选择
  • 桂林网站制作seo免费培训
  • 怎么做淘宝联盟的推广网站seo入门书籍推荐
  • 中国网站建设中心体球网足球世界杯
  • 南阳seo优化公司sem优化技巧
  • app 网站可以做的免费推广市场调研的重要性
  • 网站权重优化方式网络营销论文5000字
  • 网站建设传单文案哈尔滨百度推广公司
  • google网站管理员工具 下载域名查询系统
  • 韩国网站域名分类公司网站的作用
  • 做招聘网站的背景图片电池优化大师下载
  • 男做暧免费视频网站数据分析师培训机构
  • 做网站需要哪些技术知乎seo公司重庆
  • 租房网站发布信息的免费平台有哪些
  • 自己做网站怎么搜索电脑办公软件培训班
  • 百度站长工具数据提交知乎营销推广
  • 如何连接wordpress河北seo推广方案
  • 51网站空间相册在哪里国外网站怎么推广
  • 广西建设厅官网站首页站长工具大全
  • 手机网站设计的项目描述杭州seo服务公司
  • 宁晋网站开发百度关键词多少钱一个月
  • 天津手机网站建设百度查一下
  • 湖南网站建设开发台州网站建设优化
  • 企业网站设计合同关键词排名
  • 做网站建设的怎么拓展业务小程序推广方案