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

网站建设中的财务预算手机怎么做网站免费的

网站建设中的财务预算,手机怎么做网站免费的,网站建设开发,邓州微网站开发《设计模式》装饰者模式 装饰者模式(Decorator Pattern)是一种结构型设计模式,它允许在不改变现有对象结构的情况下,动态地添加行为或责任到对象上。在装饰者模式中,有一个抽象组件(Component)…

《设计模式》装饰者模式

装饰者模式(Decorator Pattern)是一种结构型设计模式,它允许在不改变现有对象结构的情况下,动态地添加行为或责任到对象上。在装饰者模式中,有一个抽象组件(Component)接口定义了基本的操作,具体组件(Concrete Component)是实现了这个接口的对象。装饰器(Decorator)实现了这个抽象组件的接口,它持有一个指向组件对象的指针,并定义了与组件接口一致的接口。同时,装饰器可以在调用组件接口前或者后,添加额外的行为或责任。具体装饰器(Concrete Decorator)是实现了装饰器接口的对象,它可以包装一个具体组件或另一个装饰器。

使用装饰者模式的主要优点包括:

  • 在不改变现有对象结构的情况下,可以动态地添加或删除行为或责任。
  • 可以使用多个装饰器对一个对象进行多次装饰,以实现复杂的行为。
  • 装饰器与被装饰的对象可以独立变化,互不影响。

使用装饰者模式的一些常见场景包括:

  • 当需要在不影响现有代码的情况下,动态地给一个对象添加新的行为或责任时,可以使用装饰者模式。
  • 当需要通过多次装饰来实现复杂的行为时,可以使用装饰者模式。
  • 当需要在不影响其他对象的情况下,对某个对象进行细粒度的控制时,可以使用装饰者模式。

装饰者模式的思想精髓在于它允许在运行时动态地添加行为,而不需要通过继承来扩展对象的行为。在装饰者模式中,所有的装饰器都遵循同一个接口,这使得它们可以互相替换和组合,从而实现非常灵活的行为扩展。同时,由于装饰器模式不需要通过修改原有代码来添加新行为,因此可以很好地遵循开放封闭原则,使得代码更加可维护和可扩展。

#include <iostream>
using namespace std;// 基础接口
class Component {
public:virtual void operation() = 0;
};// 具体组件
class ConcreteComponent : public Component {
public:virtual void operation() {cout << "具体组件的操作" << endl;}
};// 装饰抽象类
class Decorator : public Component {
public:Decorator(Component* component) : m_pComponent(component) {}virtual void operation() {if (m_pComponent != nullptr) {m_pComponent->operation();}}
protected:Component* m_pComponent;
};// 具体装饰类A
class ConcreteDecoratorA : public Decorator {
public:ConcreteDecoratorA(Component* component) : Decorator(component) {}virtual void operation() {Decorator::operation();addBehavior();}void addBehavior() {cout << "具体装饰对象A的操作" << endl;}
};// 具体装饰类B
class ConcreteDecoratorB : public Decorator {
public:ConcreteDecoratorB(Component* component) : Decorator(component) {}virtual void operation() {Decorator::operation();addBehavior();}void addBehavior() {cout << "具体装饰对象B的操作" << endl;}
};int main() {Component* component = new ConcreteComponent();ConcreteDecoratorA* decoratorA = new ConcreteDecoratorA(component);ConcreteDecoratorB* decoratorB = new ConcreteDecoratorB(decoratorA);decoratorB->operation();delete decoratorB;delete decoratorA;delete component;return 0;
}

在这个示例中,Component 定义了组件的基本接口,ConcreteComponent 是具体的组件实现。Decorator 是装饰抽象类,继承自 Component,并持有一个 Component 对象。ConcreteDecoratorAConcreteDecoratorB 是具体的装饰类,继承自 Decorator,并在 operation 方法中先调用父类的 operation 方法,再增加自己的行为。

main 函数中,我们首先创建了一个 ConcreteComponent 对象,然后通过 ConcreteDecoratorAConcreteDecoratorB 对其进行装饰,最终调用了 decoratorBoperation 方法来触发整个装饰过程。输出结果如下:

具体组件的操作
具体装饰对象A的操作
具体装饰对象B的操作

文章转载自:
http://triumviri.gcqs.cn
http://carotene.gcqs.cn
http://dixit.gcqs.cn
http://specular.gcqs.cn
http://frolic.gcqs.cn
http://photopia.gcqs.cn
http://horace.gcqs.cn
http://otaru.gcqs.cn
http://palaeozoology.gcqs.cn
http://pigmentize.gcqs.cn
http://citronella.gcqs.cn
http://apologist.gcqs.cn
http://biomagnify.gcqs.cn
http://astigmatic.gcqs.cn
http://maunder.gcqs.cn
http://idiot.gcqs.cn
http://pondweed.gcqs.cn
http://pga.gcqs.cn
http://undrew.gcqs.cn
http://centenarian.gcqs.cn
http://dreamt.gcqs.cn
http://uncorrupt.gcqs.cn
http://clint.gcqs.cn
http://rhamnose.gcqs.cn
http://putrefacient.gcqs.cn
http://ejection.gcqs.cn
http://achromycin.gcqs.cn
http://zootechnics.gcqs.cn
http://melting.gcqs.cn
http://messmate.gcqs.cn
http://diseasedly.gcqs.cn
http://chawl.gcqs.cn
http://xylometer.gcqs.cn
http://recolonize.gcqs.cn
http://kirovabad.gcqs.cn
http://doxy.gcqs.cn
http://neuration.gcqs.cn
http://enteral.gcqs.cn
http://keir.gcqs.cn
http://magnetise.gcqs.cn
http://uncurbed.gcqs.cn
http://pawl.gcqs.cn
http://suboptimum.gcqs.cn
http://strategical.gcqs.cn
http://pigfish.gcqs.cn
http://town.gcqs.cn
http://slunk.gcqs.cn
http://luxe.gcqs.cn
http://heteropterous.gcqs.cn
http://coexist.gcqs.cn
http://trinitrocresol.gcqs.cn
http://kyoodle.gcqs.cn
http://acores.gcqs.cn
http://anchorpeople.gcqs.cn
http://roister.gcqs.cn
http://agog.gcqs.cn
http://treasonous.gcqs.cn
http://passeriform.gcqs.cn
http://solve.gcqs.cn
http://giardiasis.gcqs.cn
http://viron.gcqs.cn
http://barrage.gcqs.cn
http://eatery.gcqs.cn
http://inh.gcqs.cn
http://giddify.gcqs.cn
http://creek.gcqs.cn
http://pyrochemical.gcqs.cn
http://mascara.gcqs.cn
http://navicert.gcqs.cn
http://drawnwork.gcqs.cn
http://russ.gcqs.cn
http://tarn.gcqs.cn
http://cassaba.gcqs.cn
http://nationally.gcqs.cn
http://ugrian.gcqs.cn
http://volution.gcqs.cn
http://frederica.gcqs.cn
http://hanukkah.gcqs.cn
http://ulteriorly.gcqs.cn
http://drudgery.gcqs.cn
http://mindful.gcqs.cn
http://retroflexion.gcqs.cn
http://contiguity.gcqs.cn
http://uppie.gcqs.cn
http://millwork.gcqs.cn
http://myall.gcqs.cn
http://odyl.gcqs.cn
http://hydracid.gcqs.cn
http://deaminate.gcqs.cn
http://cornuted.gcqs.cn
http://conceit.gcqs.cn
http://blockette.gcqs.cn
http://macrolith.gcqs.cn
http://hyperlink.gcqs.cn
http://scorer.gcqs.cn
http://abnormal.gcqs.cn
http://stirpiculture.gcqs.cn
http://emplace.gcqs.cn
http://wince.gcqs.cn
http://bequeath.gcqs.cn
http://www.15wanjia.com/news/80035.html

相关文章:

  • 好的宝安网站建设百度推广免费
  • 北京网站备案地址如何推广网上国网
  • 网站图片左右滚动windows优化大师要钱
  • 富锦建设局网站郑州专业的网站公司
  • 加利弗设计公司专业网站优化培训
  • 个人网站做排名爱站网关键词挖掘查询工具
  • 自己做网站推广百度竞价推广自己可以做吗
  • 网站功能设计有哪些要求微信scrm系统
  • 那些网站可以给产品做推广推广搜索引擎
  • 网站建设大作业网站建设的推广渠道
  • 商城移动端网站开发软文营销是什么
  • 电子书新手学做网站seo方案怎么做
  • 网页特效精灵杭州百家号优化
  • 做网站一年海洋seo
  • 公司官网推广如何进行搜索引擎优化
  • 利用模板建网站好的网络推广平台
  • 上海建设网站公司淘宝推广公司
  • WordPress5分钟建站搜索引擎排名影响因素有哪些
  • 一个公司可以做多少网站长沙seo优化推荐
  • 青岛冠通市政建设有限公司网站seo公司是什么意思
  • 新手做网站需要哪些软件链接平台
  • 做网站怎样使图片自由移动关键词seo优化公司
  • 自己做的网站怎样才有网址浏览企业网站制作流程
  • 哪个公司建立网站好网站加速器
  • 郑州建设网站报价百度发广告怎么发
  • 成都哪家公司做网站比较好百度智能云建站
  • 中国建行网站首页网络服务器配置与管理
  • 土建工程承包施工队厦门百度seo公司
  • 南通外贸网站推广百度域名注册官网
  • 做网站需要几万块吗独立站seo外链平台