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

建设网站广州个人博客登录入口

建设网站广州,个人博客登录入口,手机上怎么分享wordpress,五星级酒店网站建设方案装饰模式(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/593421/

相关文章:

  • aspnet东莞网站建设多少钱国外跨境电商平台有哪些
  • 手机网站设计创意说明仿抖音wordpress
  • 遵义做网站哪个公司最好网站推广的意义
  • 特色的岑溪网站开发互联网服务平台怎么注册
  • 网站访问量js免费推广途径有哪些
  • 汕头企业网站建设价格学校网页设计方案
  • 网站建设管理ppt模板钟村免费建站公司
  • 公司网站建设及维护管理总结推广策略
  • 创新的购物网站建设什么网站可以做项目
  • 戴尔公司网站建设成功的关键是什么郯城县建设局网站
  • 2017自己做网站的趋势技术培训平台
  • 电子商务网站建设实用教程教案重庆资质代理公司
  • 做网站绿标网站建设中模板 模板无忧
  • 有免费的微网站制作吗网络营销推广方法集锦
  • 外贸品牌网站设计公司网站开发和后台维护
  • 网站后台更新后主页不显示网站建设与维护费用
  • 公司网站设计网站 相对路径
  • 做视频网站需要执照吗关键词林俊杰在线听免费
  • 哪个建站系统适合外贸网站建设合肥房产网贝壳
  • 58同城佛山网站建设网站怎么更新文章
  • 什么网站可下载可做海报的图片互联网0成本暴利项目
  • 免费下载高清图片素材的网站为什么做手机网站
  • 做网站的技术要求高吗最新手机导航地图下载
  • 厦门易尔通做网站怎么样如何注册成立家族公司
  • php做网站如何架构张家港苏州网站建设
  • 山西住房与城乡建设部网站iis6.1配置网站
  • 生物网站建设dede网站地图修改
  • mooc 网站建设情况wordpress 采集器
  • 吉林省工程建设标准网站WordPress导出静态网页
  • 注册送38元的游戏网站淘宝导购网站备案