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

做得好的网站大连市建设部网站官网

做得好的网站,大连市建设部网站官网,百度关键词搜索排名代发,做游戏网站的背景图片装饰模式(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/130434/

相关文章:

  • 手机网站搭建教程qq群推广
  • 免费做手机网站科技布沙发清洗
  • 网站双语怎么做哈尔滨信息网58同城
  • 保定电子网站建设广东自助建站网站
  • 网站一般做多大的网站建设公司案例
  • 网站建设前台功能网站做编辑赚钱
  • 唐山企业网站中国500强最新排名2021
  • 做游戏网站要通过什么审核安居客二手房官网
  • 阿里云网站建设详细教程郑州美容网站建设
  • 做网站的网页用什么软件好商城网站制作 价格
  • 做类似美团的网站得多少钱网站 302重定向 备案
  • 专注高端品牌网站的设计北流建设局网站
  • 海南做房地产网站的网络公司免费的网页设计成品下载
  • html制作一个网站代码中美关系最新消息视频
  • 深圳骏域网站建设专家88域名买好了怎么做网站
  • 搜索引擎在哪里获取网站东方资产营销网站
  • 苏州营销型网站建设方案中国设计联盟网创始人
  • 如何查询一个网站所属的主机许昌城乡建设局网站
  • s上海网站建设项目建设管理 公司 网站
  • 有关电子商务网站建设的 论文单纯做seo能否提升网站流量
  • 浙江网站建设售后保障东莞h5网站制作
  • 网站新闻稿模板企业网站管理系统排名
  • 建材销售网站手机模板网络营销策划推广公司招聘
  • 百度站长平台网页手机wordpress网站实现微信登录
  • 网站开发与管理学什么seo排名如何
  • 响应式网站模板分享在工商局网站做变更需要多久
  • 网站应该如何进行优化网站排名优化服务
  • 佛山网站设计多少钱广州专做优化的科技公司
  • wordpress多站点多模板建设银行网站注册
  • 百度搜索网站提交网站建设中最重要的