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

外贸网站建站案例wordpress侧边栏广告

外贸网站建站案例,wordpress侧边栏广告,工业皮带怎么做免费的网站,wordpress收入篇八#xff1a;“装饰器模式#xff1a;动态增加功能” 开始本篇文章之前先推荐一个好用的学习工具#xff0c;AIRIght#xff0c;借助于AI助手工具#xff0c;学习事半功倍。欢迎访问#xff1a;http://airight.fun/。 另外有2本不错的关于设计模式的资料#xff0c…篇八“装饰器模式动态增加功能” 开始本篇文章之前先推荐一个好用的学习工具AIRIght借助于AI助手工具学习事半功倍。欢迎访问http://airight.fun/。 另外有2本不错的关于设计模式的资料分享出来与大家学习参考。 链接https://pan.baidu.com/s/1RmhQF_o1CdK8U7s5KeILog?pwdxc6d 提取码xc6d 设计模式是软件开发中的重要组成部分装饰器模式是结构型设计模式中的一种。装饰器模式旨在动态地为对象增加额外的功能而无需修改其结构。通过装饰器模式我们可以在不影响现有代码的情况下灵活地扩展对象的功能。在C中装饰器模式广泛应用于需要动态增加对象功能的场景让我们一起分析其作用和实现方式并指导读者在C中如何应用装饰器模式。 1. 装饰器模式的作用和实现方式 装饰器模式是结构型设计模式其作用在于动态地为对象增加额外的功能而不影响其结构。装饰器模式通过创建装饰器类来包装原有类从而实现对原有类的功能扩展。装饰器模式是继承关系的替代方案避免了类爆炸的问题。 装饰器模式的实现方式如下 定义抽象组件类抽象组件类定义了装饰器和原有类的共同接口。创建具体组件类具体组件类实现抽象组件类的接口表示原有类。创建抽象装饰器类抽象装饰器类继承自抽象组件类并包含一个对抽象组件的引用。创建具体装饰器类具体装饰器类继承自抽象装饰器类用于包装具体组件类并在其功能上进行扩展。 2. 在C中应用装饰器模式动态增加对象功能 a. 定义抽象组件类 // Component.h class Component { public:virtual ~Component() {}virtual void operation() const 0; };b. 创建具体组件类 // ConcreteComponent.h #include iostream #include Component.hclass ConcreteComponent : public Component { public:void operation() const override {std::cout ConcreteComponent operation std::endl;} };c. 创建抽象装饰器类 // Decorator.h #include Component.hclass Decorator : public Component { public:Decorator(Component* component) : component_(component) {}virtual ~Decorator() {}void operation() const override {if (component_) {component_-operation();}}protected:Component* component_; };d. 创建具体装饰器类 // ConcreteDecoratorA.h #include iostream #include Decorator.hclass ConcreteDecoratorA : public Decorator { public:ConcreteDecoratorA(Component* component) : Decorator(component) {}void operation() const override {Decorator::operation();addedBehavior();}void addedBehavior() const {std::cout ConcreteDecoratorA added behavior std::endl;} };// ConcreteDecoratorB.h #include iostream #include Decorator.hclass ConcreteDecoratorB : public Decorator { public:ConcreteDecoratorB(Component* component) : Decorator(component) {}void operation() const override {Decorator::operation();addedBehavior();}void addedBehavior() const {std::cout ConcreteDecoratorB added behavior std::endl;} };e. 使用装饰器模式 // main.cpp #include ConcreteComponent.h #include ConcreteDecoratorA.h #include ConcreteDecoratorB.hint 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; }在上述示例中我们首先定义了抽象组件类Component并创建了具体组件类ConcreteComponent表示原有类。然后我们定义了抽象装饰器类Decorator继承自Component并包含一个对抽象组件的引用。接着我们创建了具体装饰器类ConcreteDecoratorA和ConcreteDecoratorB继承自抽象装饰器类用于包装具体组件类并在其功能上进行扩展。 在main.cpp中我们创建了具体组件对象component然后用ConcreteDecoratorA包装它再用ConcreteDecoratorB包装它。最后我们调用装饰器对象的operation()方法从而实现了动态增加对象功能。 3. 装饰器模式的代码解析 装饰器模式通过创建装饰器类来包装原有类实现了对原有类的功能扩展同时避免了类爆炸的问题增加了系统的灵活性和可扩展性。抽象组件类定义了装饰器和原有类的共同接口抽象装饰器类继承自抽象组件类并包含一个对抽象组件的引用具体装饰器类继承自抽象装饰器类用于包装具体组件类并在其功能上进行扩展。 4. 总结 装饰器模式是结构型设计模式其作用在于动态增加对象的功能而无需修改其结构。通过创建装饰器类来包装原有类实现了对原有类的功能扩展同时避免了类爆炸的问题增加了系统的灵活性和可扩展性。 在C中可以通过定义抽象组件类和抽象装饰器类以及创建具体组件类和具体装饰器类的方式来应用装饰器模式。具体组件类表示原有类抽象装饰器类继承自抽象组件类并包含一个对抽象组件的引用具体装饰器类继承自抽象装饰器类用于包装具体组件类并在其功能上进行扩展。 使用装饰器模式时首先创建具体组件对象然后通过具体装饰器类对其进行包装从而动态增加对象功能。装饰器模式允许客户端根据需求选择不同的装饰器进行组合从而实现不同的功能组合而无需修改原有类。 5. 总结 装饰器模式是结构型设计模式其作用在于动态增加对象的功能而无需修改其结构。通过创建装饰器类来包装原有类实现了对原有类的功能扩展同时避免了类爆炸的问题增加了系统的灵活性和可扩展性。在C中可以通过定义抽象组件类和抽象装饰器类以及创建具体组件类和具体装饰器类的方式来应用装饰器模式。使用装饰器模式时首先创建具体组件对象然后通过具体装饰器类对其进行包装从而动态增加对象功能。装饰器模式允许客户端根据需求选择不同的装饰器进行组合从而实现不同的功能组合而无需修改原有类。 希望本文能够帮助您更好地理解装饰器模式的作用和实现方式并指导您在C中应用装饰器模式来动态增加对象功能。在后续的专栏文章中我们将继续介绍更多设计模式的知识包括原理、详细介绍、示例代码和代码解析帮助您深入学习和应用设计模式。 参考文献 Gamma, E., Helm, R., Johnson, R., Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional.C Core Guidelines: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines 感谢您的阅读欢迎一起探讨共同进步推荐大家使用学习助手AIRight来解答学习过程中的问题访问链接http://airight.fun/
http://www.hkea.cn/news/14285520/

相关文章:

  • 企业网站开发实训报告网站支付怎么做安全吗
  • 郑州网站推广优化公司开发公司分公司如何办预售证
  • 确定建设电子网站的目的东莞网站推广多少钱
  • 石家庄长安区网站建设公司深圳网站制作哪家价格便宜
  • 济宁网站建设那家好邯郸做网站的公司哪家好
  • 网站服务器和直播服务器一样吗网站建设台州
  • 精品课程 网站建设质量qq浏览器网页版入口
  • 新浪博客网站邮箱免费申请注册账号
  • 登不上建设银行网站网站漏洞扫描服务
  • wap网站模板网站开发有哪些语言
  • 为什么手机进网站乱码网站备案 ip
  • 馆陶县网站北京价格网站建设
  • 泰安网站开发制作公司wordpress作者列表
  • php制作网站后台如何做二级域名子目录网站
  • 网站开发职位介绍外贸网站建设高端的
  • 平面设计师网站都有哪些医疗网站的运营
  • wordpress 循环菜单整站优化要多少钱
  • 电子商务网站建设交印花税吗输变电壹级电力建设公司网站
  • 自己做盗版小说网站吗如何找外链资源
  • 网站设计分工网站建设的任务
  • 怎样开一个小贸易公司佛山网站快速优化排名
  • 做饼干的网站微信h5支付
  • 沈阳网站建设小志招聘网站系统怎么做
  • 网站源码交易平台北京海淀网站建设
  • 莒南县建设工程网站花都网站设计都
  • 做带支付平台的协会网站大概价格低怎么说好听
  • 几十万做网站平台985建设网站
  • 自己做的网页怎么上传到网站吗国外网站推广平台有哪些?
  • 班级网站模板下载网络信息安全公司
  • 海外网站加速驾校网站建设费用