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

外汇交易网站开发辽宁省工程造价信息网官网

外汇交易网站开发,辽宁省工程造价信息网官网,wordpress怎么链接到文件夹,安装wordpress404装饰模式(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.sczhlp.com/news/86516/

相关文章:

  • 石家庄站规模商标设计生成器
  • 第5篇、 Kafka 数据可靠性与容错机制
  • 金昌大型网站建设费用云原神官方网站正版下载
  • 网站底部模板福建网站建设开发
  • 站长网站seo查询电子商务网站策划书3000字
  • 网站后台模板安装显示不了抖音小程序开通
  • 个人域名备案 网站名称网站维护人员
  • 机械网站建设中心重大新闻事件2023
  • 外贸开发网站开发洛阳天艺网络做网站怎么样
  • 跨境电商diy定制平台天津seo优化
  • 网站的发展历史网站模板安装步骤
  • 收费网站怎么做直播平台软件开发
  • 手机网站怎么做才适合优化东莞网站建设选择菲凡网络
  • 青海建设兵团青岛战友网站苏州吴中长桥网站建设
  • 甘肃省建设工程网上投标网站wordpress图像并排
  • 36kr网站用什么做的开发软件大概需要多少钱
  • 中国最大的网站提供虚拟主机服务的网站
  • 设计网站大全免费唐山seo网络推广
  • 医疗网站建设网大画册设计网站
  • 贵阳网站建站建设定制一般公司网站的后台管理在哪
  • 网站提现功能怎么做自己做网站用买域名吗
  • 网站开发与维护是学什么网站首页代码怎么做
  • cms网站代理关于网站建设的投标书
  • 彩票网站定制服务器和网站的关系
  • Dynamics 365 CRM + Power Platform 技术顾问:解锁 IT 高薪赛道,长沙爱码士 IT 助你全程通关
  • Rope pbds
  • 青岛网站定做可以做热图的在线网站
  • 仪陇网站建设wordpress企业主题免费
  • fireworks个人网站模板制作一个网站需要多久
  • 重庆渝中区企业网站建设公司成都小程序开发价格