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

网站建设的布局种类免费一键生成logo网站

网站建设的布局种类,免费一键生成logo网站,wordpress 小视频模板,东莞网站设计知名 乐云践新《设计模式》装饰者模式 装饰者模式#xff08;Decorator Pattern#xff09;是一种结构型设计模式#xff0c;它允许在不改变现有对象结构的情况下#xff0c;动态地添加行为或责任到对象上。在装饰者模式中#xff0c;有一个抽象组件#xff08;Component#xff09;…《设计模式》装饰者模式 装饰者模式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 对象。ConcreteDecoratorA 和 ConcreteDecoratorB 是具体的装饰类继承自 Decorator并在 operation 方法中先调用父类的 operation 方法再增加自己的行为。 在 main 函数中我们首先创建了一个 ConcreteComponent 对象然后通过 ConcreteDecoratorA 和 ConcreteDecoratorB 对其进行装饰最终调用了 decoratorB 的 operation 方法来触发整个装饰过程。输出结果如下 具体组件的操作 具体装饰对象A的操作 具体装饰对象B的操作
http://www.sczhlp.com/news/184759/

相关文章:

  • 烟台定制网站建设公司移动互联网应用程序个人信息保护管理暂行规定(征求意见稿)
  • 提供网站制作住房和城乡建设网官网八大员报名
  • 现代农业园网站建设方案app开发公司费用
  • 网站在百度的图标显示不正常显示无锡网站建设服务
  • 绍兴市住房和城乡建设局官方网站做cad室内平面图的家具素材网站
  • springboot 项目部署是tomcat么
  • 2025 年最新推荐恒温恒湿试验箱优质厂家榜单:涵盖立式/可程式/小型等多类型设备的精选企业推荐可程式/小型/防爆高低温试/高温高湿试验箱/低温低湿试验箱厂家推荐
  • CSS开发工具推荐与实战经验,让样式开发更高效、更精准
  • 详细揭秘:详细揭秘:集合划分容斥的容斥系数
  • 2025 年冷热冲击试验箱生产厂家最新推荐榜:聚焦三箱 / 两箱 / 吊篮式 / 小型 / 风冷式 / 可程式设备,精选优质企业助力高效选购
  • 郑州网站建设推广渠道建工网官网校
  • 电商类网站舟山网站开发
  • 做网站要先做商标吗自己做网站 怎么解决安全问题
  • 如何破解网站管理员登陆密码邯郸网站设计怎么申请
  • 四川建设厅官方网站九大员通知江门网站设计素材
  • 金乡县网站建设好的网站收入
  • 网站开发使用的技术wordpress地方门户
  • 网站优化宝购销网站建设视频百度云
  • php网站开发视频教程网站上的图片怎么做
  • 哪些专业能建网站河北邢台有什么好玩的地方
  • 网站的推广等内容表白软件制作器手机版
  • 微信公众号移动网站开发北京百度推广
  • 中山市西区网站制作wordpress 行距
  • 文章修改网站品牌大全
  • 广西网站怎么制作wordpress葬爱导航
  • 网站维护一年一般多少钱?网站的建设维护推广
  • 邢台网站建设最新报价高碑店市建设局网站
  • 企业网站设计话术如何建立公众号的步骤
  • 网站开发面试自我介绍电脑手机网站相互跳转
  • 做蛋糕网站的优点现在是用什么软件做网站