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

北京网站建设技术C语言开发网站开发语言

北京网站建设技术,C语言开发网站开发语言,自学做网站多久,aso优化方法目录 C设计模式-装饰器(Decorator) 一、意图 二、适用性 三、结构 四、参与者 五、代码 C设计模式-装饰器(Decorator) 一、意图 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子…

目录

C++设计模式-装饰器(Decorator)

一、意图

二、适用性

三、结构

四、参与者

五、代码


C++设计模式-装饰器(Decorator)

一、意图

动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。

二、适用性

  • 在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。
  • 处理那些可以撤消的职责。
  • 当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。

三、结构

 

四、参与者

  • Component

        定义一个对象接口,可以给这些对象动态地添加职责。

  • ConcreteDecorator

       定义一个对象,可以给这个对象添加一些职责。

  • Decorator

        维持一个指向Component对象的指针,并定义一个与Component接口一致的接口。

  • ConcreteComponent

        向组件添加职责。

五、代码

#include<iostream>
using namespace std;class Component {
public:virtual void Operation() = 0;
};class ConcreteComponent : public Component{
public:virtual void Operation() {cout << "ConcreteComponent" << endl;}
};class Decorator : public Component {
public:Decorator(Component* tempComponent) :component(tempComponent) {}virtual void Operation() {component->Operation();}
private:Component* component;
};class ConcreteDecoratorA : public Decorator {
public:ConcreteDecoratorA(Component* tempComponent) :Decorator(tempComponent) {}virtual void Operation() {Decorator::Operation();cout << "ConcreteDecoratorA" << endl;}
};class ConcreteDecoratorB : public Decorator {
public:ConcreteDecoratorB(Component* tempComponent) :Decorator(tempComponent) {}virtual void Operation() {Decorator::Operation();cout << "ConcreteDecoratorB" << endl;}
};int main() {Component* component = new ConcreteComponent;component->Operation();Component* componentA = new ConcreteDecoratorA(component);componentA->Operation();Component* componentB = new ConcreteDecoratorB(component);componentB->Operation();return 0;
}

http://www.sczhlp.com/news/89510/

相关文章:

  • 安徽省建设厅网站个人怎么注册个人电子邮箱怎么填写格式
  • 如何开通网上商城广州品牌seo推广
  • 韶关网站制作江阴网络公司做网站
  • 中太建设集团股份有限公司网站网页设计与制作难不难
  • 镜像网站做排名wordpress 贴吧主题
  • 广州门户网站亿源科技网站建设
  • 白城网站建设百度推广工具有哪些
  • 医院网站建设招标公告网站建设需要提供哪些资料
  • 贵阳网站开发哪家便宜泰安网站制作公司电话
  • 你认为视频网站如何做推广肇庆网站制作策划
  • 网站开发必学的技巧有哪些石家庄市新华区建设局网站
  • 团购网站 seo长沙有啥好玩的
  • 织梦 导航网站 模板网站直播用php怎么做
  • 开发一个彩票网站多少钱网页制作设计多少费用
  • 企业网站建设框架科技公司网站推荐
  • 高校教学网站建设如何组建网站
  • 自己做的网站如何放进服务器做网销的一天都在干嘛
  • 空间站对接浙江省住房城乡建设厅官方网站
  • 温州高端网站建设企业服务平台官网入口
  • 广告设计公司网站源码网站建设 发展方向
  • 大连做网站价钱哪些网站是用twcms做的
  • 企业网站优化17html网站编辑器
  • 吉粤建设工程股份有限公司网站接外贸订单的平台
  • 网站建设百度文库杭州优化外包公司排名
  • 奉贤网站建设网站制作微信网站建设协议
  • 长沙企业网站建设案例建设银行网站打印消费账单
  • 佛山网站优化建设html网页制作内容
  • 福州网站设计培训网站登录页面html模板
  • 网站开发前端指什么软件重庆一家和兴装饰设计有限公司
  • 自己做的网页可以上传网站吗乡村建设的网站