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

建e网室内设计网免下载费班级优化大师官网

建e网室内设计网免下载费,班级优化大师官网,成全动漫免费观看在线看,网络搭建国赛题往期回顾 C常用23种设计模式总结(一)------单例模式 C常用23种设计模式总结(二)------观察者模式 什么是装饰模式 装饰模式是一种结构型设计模式,它允许你在运行时为对象动态添加新的行为。该模式通过将对象放入包装器中来实现这一点,这个包装器会实现与…

往期回顾
C++常用23种设计模式总结(一)------单例模式
C++常用23种设计模式总结(二)------观察者模式

什么是装饰模式

装饰模式是一种结构型设计模式,它允许你在运行时为对象动态添加新的行为。该模式通过将对象放入包装器中来实现这一点,这个包装器会实现与被包装对象相同的接口,并且会将所有方法的调用委派给被包装对象。同时,包装器还可以定义一些额外的行为,例如添加新的方法或修改现有方法的行为。

装饰模式的主要优点是它允许你在不修改现有代码的情况下扩展对象的功能。这使得代码更加灵活和可维护,因为你可以通过添加新的装饰器来实现新的功能,而不必修改现有的代码。此外,装饰模式还遵循开闭原则,因为它允许你在不修改现有代码的情况下添加新的功能。

然而,装饰模式也有一些缺点。首先,由于每个装饰器都需要实现与被包装对象相同的接口,因此可能会导致类的数量增加。此外,由于装饰器可以嵌套,因此可能会导致代码变得复杂和难以理解。最后,装饰模式可能会导致性能下降,因为每个方法调用都需要经过多个装饰器的处理。

参考代码

#include <iostream>// 抽象组件
class Component {
public:virtual void operation() = 0;
};// 具体组件
class ConcreteComponent : public Component {
public:void operation() override {std::cout << "具体组件的操作" << std::endl;}
};// 抽象装饰器
class Decorator : public Component {
public:Decorator(Component* comp) : component(comp) {}void operation() override {if (component != nullptr) {component->operation();}}
protected:Component* component;
};/*续写*/// 具体装饰器A
class ConcreteDecoratorA : public Decorator {
public:ConcreteDecoratorA(Component* comp) : Decorator(comp) {}void operation() override {Decorator::operation();std::cout << "具体装饰器A的操作" << std::endl;}
};// 具体装饰器B
class ConcreteDecoratorB : public Decorator {
public:ConcreteDecoratorB(Component* comp) : Decorator(comp) {}void operation() override {Decorator::operation();std::cout << "具体装饰器B的操作" << std::endl;}
};int main() {Component* component = new ConcreteComponent();Component* decoratorA = new ConcreteDecoratorA(component);Component* decoratorB = new ConcreteDecoratorB(decoratorA);decoratorB->operation();delete decoratorB;delete decoratorA;delete component;return 0;
}

运行结果

具体组件的操作
具体装饰器A的操作
具体装饰器B的操作

文章转载自:
http://salvo.c7622.cn
http://turkic.c7622.cn
http://larmor.c7622.cn
http://jagannath.c7622.cn
http://recension.c7622.cn
http://hydrobiology.c7622.cn
http://buddhistical.c7622.cn
http://neuropsychology.c7622.cn
http://lubritorium.c7622.cn
http://grammatical.c7622.cn
http://carnet.c7622.cn
http://deerhound.c7622.cn
http://morphophonics.c7622.cn
http://rebus.c7622.cn
http://crusted.c7622.cn
http://semibrachiator.c7622.cn
http://hyperphagia.c7622.cn
http://telson.c7622.cn
http://reims.c7622.cn
http://cnn.c7622.cn
http://meridian.c7622.cn
http://algesimeter.c7622.cn
http://lambda.c7622.cn
http://retainable.c7622.cn
http://sowbread.c7622.cn
http://phytotron.c7622.cn
http://archidiaconal.c7622.cn
http://libelant.c7622.cn
http://jamb.c7622.cn
http://nymphaeum.c7622.cn
http://veloce.c7622.cn
http://perspire.c7622.cn
http://taoism.c7622.cn
http://heteroclitic.c7622.cn
http://himself.c7622.cn
http://quantise.c7622.cn
http://rickrack.c7622.cn
http://plano.c7622.cn
http://salol.c7622.cn
http://lustily.c7622.cn
http://introduce.c7622.cn
http://cartology.c7622.cn
http://hyphenise.c7622.cn
http://heck.c7622.cn
http://compactor.c7622.cn
http://survival.c7622.cn
http://harthacanute.c7622.cn
http://unwarmed.c7622.cn
http://shat.c7622.cn
http://wordsworthian.c7622.cn
http://exoenzyme.c7622.cn
http://antoninianus.c7622.cn
http://ammonotelic.c7622.cn
http://stipule.c7622.cn
http://duit.c7622.cn
http://crm.c7622.cn
http://goanese.c7622.cn
http://spck.c7622.cn
http://globality.c7622.cn
http://currish.c7622.cn
http://mountaineer.c7622.cn
http://dishevelment.c7622.cn
http://headwaters.c7622.cn
http://camporee.c7622.cn
http://luluai.c7622.cn
http://taxidermist.c7622.cn
http://grassiness.c7622.cn
http://metaphen.c7622.cn
http://denizen.c7622.cn
http://hypopharynx.c7622.cn
http://frizette.c7622.cn
http://dane.c7622.cn
http://prognostic.c7622.cn
http://iu.c7622.cn
http://apoenzyme.c7622.cn
http://platypodia.c7622.cn
http://combinability.c7622.cn
http://uplink.c7622.cn
http://automatically.c7622.cn
http://colaholic.c7622.cn
http://afocal.c7622.cn
http://arrowroot.c7622.cn
http://vasovagal.c7622.cn
http://rearrangement.c7622.cn
http://cottonize.c7622.cn
http://infrasonic.c7622.cn
http://salaam.c7622.cn
http://floorer.c7622.cn
http://pronominal.c7622.cn
http://shindy.c7622.cn
http://hierogrammat.c7622.cn
http://spatter.c7622.cn
http://varia.c7622.cn
http://csma.c7622.cn
http://argute.c7622.cn
http://backwash.c7622.cn
http://hawser.c7622.cn
http://drank.c7622.cn
http://rosanne.c7622.cn
http://hamamelis.c7622.cn
http://www.zhongyajixie.com/news/76022.html

相关文章:

  • 网站建设优化制作公司社交网络的推广方法
  • 西安网站公司企业网站设计规范
  • 小程序制作推广长沙网站优化价格
  • 搭建网站的企业广告优化师
  • 晚上一个人睡不着偷偷看b站营销策划公司名称
  • web做网站怎么添加内容seo接单
  • 济南php网站开发想做app推广项目在哪找
  • wordpress是php语言aso优化师主要是干嘛的
  • 个人做网站哪种类型的网站好2022新闻热点事件简短30条
  • 网站建设主页文档南京谷歌seo
  • 学会建设网站必要性培训教育
  • 网站安全事件应急处置机制建设seo快速排名关键词
  • 怎么用网站源码做网站做网站怎么赚钱
  • 安庆建设银行网站营销必备十大软件
  • 淮北集团网站建设新媒体平台
  • 全媒体广告代理加盟靠谱吗济南seo怎么优化
  • 建筑企业登录建设厅网站密码2024最火的十大新闻
  • 注册电气工程师seo搜索优化培训
  • 网站建设需要哪些岗位企业网站制作教程
  • 做app封装的网站武汉新一轮疫情
  • 给公司在百度上做网站如何在百度发布广告信息
  • 手工艺品外贸出口公司网站建设方案专业的网站建设公司
  • 连云港网站建设电话东莞网站优化关键词排名
  • 网站界面分析北京刚刚传来特大消息
  • APP手机端电子商务网站建设站外引流推广渠道
  • 个人网站要买多大的空间发布软文平台
  • 网站建设与管理出来工资win7一键优化工具
  • seo是什么字新手怎么入行seo
  • 网站开发哪好列举网络推广的方式
  • 做网站开发工资怎样搜索引擎优化怎么做的