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

做全国社保代理的网站小广告模板

做全国社保代理的网站,小广告模板,做实验室信息的网站,seo网站关键词优化多少钱装饰模式(Decorator Pattern)是一种结构型设计模式,它允许向现有对象动态地添加新功能,同时又不改变其结构。装饰模式通过将对象放入包装器中来实现,在包装器中可以动态地添加功能。 在装饰模式中,通常会有…

装饰模式(Decorator Pattern)是一种结构型设计模式,它允许向现有对象动态地添加新功能,同时又不改变其结构。装饰模式通过将对象放入包装器中来实现,在包装器中可以动态地添加功能。

在装饰模式中,通常会有四个角色:

  1. Component(组件):定义一个对象接口,可以动态地给这些对象添加职责。
  2. ConcreteComponent(具体组件):实现Component接口,并定义需要被装饰的类。
  3. Decorator(装饰器):持有一个Component对象的引用,并定义一个与Component接口一致的接口。
  4. ConcreteDecorator(具体装饰器):扩展Decorator类,覆盖其中的方法,以添加新的功能。
#include <iostream>// Component(组件)
class Coffee {
public:virtual void makeCoffee() = 0;
};// ConcreteComponent(具体组件)
class SimpleCoffee : public Coffee {
public:void makeCoffee() override {std::cout << "Making simple coffee" << std::endl;}
};// Decorator(装饰器)
class CoffeeDecorator : public Coffee {
protected:Coffee* coffee;public:CoffeeDecorator(Coffee* coffee) : coffee(coffee) {}void makeCoffee() override {if (coffee) {coffee->makeCoffee();}}
};// ConcreteDecorator(具体装饰器)
class MilkDecorator : public CoffeeDecorator {
public:MilkDecorator(Coffee* coffee) : CoffeeDecorator(coffee) {}void makeCoffee() override {if (coffee) {coffee->makeCoffee();addMilk();}}void addMilk() {std::cout << "Adding milk" << std::endl;}
};// ConcreteDecorator(具体装饰器)
class SugarDecorator : public CoffeeDecorator {
public:SugarDecorator(Coffee* coffee) : CoffeeDecorator(coffee) {}void makeCoffee() override {if (coffee) {coffee->makeCoffee();addSugar();}}void addSugar() {std::cout << "Adding sugar" << std::endl;}
};int main(int argc, char *argv[])
{// 创建一个简单的咖啡对象Coffee* simpleCoffee = new SimpleCoffee();// 使用装饰器为咖啡添加牛奶Coffee* milkCoffee = new MilkDecorator(simpleCoffee);// 制作带牛奶的咖啡milkCoffee->makeCoffee();// 使用装饰器为牛奶咖啡添加糖Coffee* milkSugarCoffee = new SugarDecorator(milkCoffee);milkSugarCoffee->makeCoffee();delete simpleCoffee;delete milkCoffee;delete milkSugarCoffee;return 0;
}/*
在这个示例中,Coffee 是一个抽象基类,SimpleCoffee 是具体的咖啡类,CoffeeDecorator 是装饰器类,MilkDecorator 是具体的装饰器类用于添加牛奶。通过装饰器模式,我们可以动态地给咖啡对象添加新的功能,而不需要修改原有的类结构。
*/

觉得有帮助的话,打赏一下呗。。

           

http://www.yayakq.cn/news/336556/

相关文章:

  • 网站的工商网监怎么做进去企业外包是什么意思
  • 云南省建设厅官方网站wordpress最新文章
  • 网站建设公司新员工培训ppt模板怎样建设影视网站
  • 企业网站制作及cms技术电子商务范围
  • 大良营销网站建设特色广东品牌网站建设968
  • 徐州网站建设开发叮当设计官网
  • 互利互通网站建设兰州展柜公司网站建设
  • 大连专业网站设计服务商重庆景点简笔画
  • 做平面找那些网站找活广州的一起做网店app下载
  • 网站开发设计实训实训总结济南网站设计建设
  • 文登市住房和城乡建设局网站挂号网站建设
  • 该网站无备案wordpress客户端5.5
  • 英文书 影印版 网站开发网站备案平台的服务简介
  • 攻击自己做的网站wordpress收集访问量
  • 视频源网站怎么做网络架构的设计依据是什么
  • 深圳企业网站制作哪家好杭州市河道建设中心网站
  • 网站站长 感受国外做灯的网站
  • 南宁营销型网站专家国内互联网前十名的公司
  • 英国设计网站周口网站建设费用
  • 建设银行网站支付流程手机照片制作成相册
  • 做网站 页面自适应哪些企业网站比较好
  • 热门的网站模板网站建设怎么申请空间
  • 怎么买网站空间百度网址大全最新版
  • 网站开发销售承接工程平台
  • 有哪些竞价网站经典网站欣赏、
  • 莱芜网站建设sikesoft广西南宁网站建设公司
  • 网站托管..南宁本地有几家网站开发
  • 深圳网站制作网站建设wordpress主题4mudi
  • 彩票交易网站开发wordpress主题git下载
  • 郑州网站排名优化公司招聘网站数据分析要怎么做