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

做网站简单的软件crm系统

做网站简单的软件,crm系统,wordpress开启xmlrpc,做网站可能遇到的问题设计模式最大的作用就是在变化和稳定中间寻找隔离点,然后分离它们,从而管理变化。将变化像小兔子一样关到笼子里,让它在笼子里随便跳,而不至于跳出来把你整个房间给污染掉。 设计思想 动态地将责任附加到对象上,若要扩…

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

设计思想

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

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

业务场景

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

相关文章:

  • 找公司做网站怎么图片都要自己找百度推广官网电话
  • 网站小样用什么做seo外链平台热狗
  • 建站点的步骤sem是什么
  • 深圳专业做网站的衡水网站优化推广
  • 徐汇科技网站建设2345中国最好的网址站
  • 邢台论坛吧百度seo收录软件
  • 做国外服务器网站吗怎么让百度搜索靠前
  • 做动态图网站有哪些自建站怎么推广
  • web网站开发课程设计报告seo技术培训沈阳
  • 会宁网站建设公司网站优化助手
  • 网站设计制作体会2023年5月最新疫情
  • 月亮湾设计有限公司网站南宁seo产品优化服务
  • 福田欧曼服务站电话上海高端seo公司
  • 高端网站建设哪家好谷歌seo和百度seo
  • 前端写一个页面多少钱海口网站关键词优化
  • 浦东新区建设局官方网站东莞seo关键词
  • 在百度做橱柜网站进入百度一下官网
  • wordpress调用分类标签站长工具查询seo
  • 网站做全局搜索云南新闻最新消息今天
  • 公司网站推广方案长春seo代理
  • 网站地图怎么样做更利于收录手机百度搜索引擎入口
  • 中国建筑公司网站谷歌浏览器官方app下载
  • 厦门网站建设策划seo网站优化培训找哪些
  • 宝安区住房和建设局官方网站seo搜索引擎优化书籍
  • 省建设厅执业资格注册中心网站2023搜索最多的关键词
  • 本地wordpress上传搜索引擎营销优化策略有哪些
  • html手机网站模板培训心得体会800字
  • 合肥做网站公司哪家好经典的软文广告
  • 网站备案哪个部门北京推广
  • 澳环网站设计公司网站建设方案