首页 > 其他分享 >设计模式_装饰模式

设计模式_装饰模式

时间:2022-09-23 16:12:11浏览次数:55  
标签:定义 继承 模式 Son 装饰 汽车装饰 设计模式 CarDecorator

先看个例子:你买了一辆爱车,现在想给车子增加装饰?

  定义汽车行为接口【IBaoMa】,定义方法【startEngine】,【switchOnLights】,【start】。

  

  定义爱车类【LoveCars】,实现【IBaoMa】。

  

  定义抽象汽车装饰类【CarDecorator】继承【LoveCars】。

  

  定义汽车装饰类【CarDecorator_01】继承【CarDecorator】。定义刷金漆方法【brushGoldPaint】。

  

测试结果:

   

  总结:装饰模式和它的字面意思差不多。指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。如果我们有一个Father类,Son类继承了Father类,GrandSon继承了Son类,那么现在你想增强Son类,会影响所有的GrandSon。

标签:定义,继承,模式,Son,装饰,汽车装饰,设计模式,CarDecorator
From: https://www.cnblogs.com/qhri/p/16716395.html

相关文章

  • 前后端开发模式
    前后端开发模式一、传统的开发模式前后端分离前我们的开发协作模式一般都是这样的:前端写好静态的HTML页面交付给后端开发。静态页面可以本地开发,也无需考虑业务逻辑只......
  • 【设计模式】之策略模式
    场景引入假如你在A城市,要去B城市旅游,交通方式有以下几种选择:驾车火车飞机不难写出这样的代码:voidtransport(stringmethod){if(method=="drive"){......
  • 第十八章 装饰器
    一、装饰器介绍1.为何要用装饰器软件的设计应该遵循开放封闭原则,即对扩展是开放的,而对修改是封闭的。对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应......
  • 享元模式
    理论享元模式(Flyweight),运用共享技术有效地支持大量细粒度的对象。内部状态与外部状态:在享元对象内部并且不会随环境变化而改变的共享部分,称为享元对象的内部状态。而随......
  • 初探缓存装饰器
    平常学习过程发现了一个牛掰装饰器,在此记录下1fromfunctoolsimportlru_cache234@lru_cache()5defcount(a,b):6print("对{},{}求和".format(a,......
  • 设计模式-结构型模式之装饰器
    实现AOP(面向切面编程)的一种便捷方式,额外扩展统一管理装饰器的实现我在语言进阶篇中有提到,这里不再赘述1fromdecoratorimportdecorator234@decorator5......
  • 策略模式演示
    参考:AwardSuper.csusingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceStrategyMode{abstractclassAwardSuper{pub......
  • 设计模式-结构型模式之外观
    简化应用程序内部接口,提供一个单一接口以供外部(前端or客户侧)调用1classValley:23defrun(self):4self.pre_declare()5self.declar......
  • 设计模式之(12)——外观模式
    外观模式(facadePattern)又叫门面模式,隐藏了子系统的复杂实现,为子系统中的一组接口提供了一个统一的访问入口,使得子系统容易被访问或使用,说白了就是把复杂的子系统封装成......
  • 1.设计模式-单例
    单例模式单例模式的核心是保证一个类只有一个实例,并且提供一个访问实例的全局访问点。单例的使用场景Spring中bean对象的模式实现方式servlet中每个servlet的实例s......