首页 > 其他分享 >装饰模式-11

装饰模式-11

时间:2023-06-22 19:46:30浏览次数:39  
标签:11 implements void Component 模式 class 装饰 Decorator

概述

装饰模式 (Decorator Pattern) 又称包装器,与适配器模式别名一样,但使用的目的不同。它动态地给一个对象添加职责,相比于通过继承添加职责更加灵活。也称“油漆工”模式(视翻译而定)。

优点:扩展对象功能的同时提高了灵活性,符合“开闭原则”。
缺点:增加系统的复杂性。

interface Component {
	void a();
}

class ComponentImpl implements Component {
	void a() {
	  //
	}
}

class Decorator implements Component {
	Component cpn;
	
	void a() {
	  cpn.a();
	}
}

class DecoratorA extends Decorator {
	void a() {
	  super.a();
	}
	
	void b() {
	  //
	}
}

图示:
image

透明模式:只允许声明抽象类型,使用抽象类型定义的方法。
半透明模式:允许声明具体类型,使用具体类型新增的方法。

参考

[1]. 刘伟, 设计模式. 2011.

标签:11,implements,void,Component,模式,class,装饰,Decorator
From: https://www.cnblogs.com/xdreamc/p/16462158.html

相关文章

  • Android四种Activity的加载模式
    建议首先阅读下面两篇文章,这样才可以更好的理解Activity的加载模式:Android的进程,线程模型其中对“Android的单线程模型”的描述,明白Activity的一些注意事项。AndroidApplicationTaskActivities的关系尤其要明白Task是啥。 一个Activty的生命周期Activty的生命周期的也......
  • 【雕爷学编程】Arduino动手做(119)---JQ6500语音模块
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • RAW域算法之固定模式噪声消除FPN
    固定模式噪声消除(FixedPatternNoiseRemove)由于Sensor工艺的原因导致了Sensor会在固定的位置产生相对固定的随时间变化较小的噪声,称之为固定模式噪声。固定模式噪声一般出现于CMOSSensor,并且Sensor的模拟增益或者列增益开的越大,固定模式噪声越明显。图12增益增大时......
  • 数字电源实测esp32和ads1115的adc精度
    0.01v精度数字电源校准esp32和ads1115的adc精度: ads1115 16bit芯片:......
  • 【雕爷学编程】Arduino动手做(118)---PS2接口模块
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • hiredis的同步模式和异步模式
    1.什么是hiredisHiredis是一个C语言编写的Redis客户端库,用于与Redis数据库进行交互。它提供了一个简洁而高效的接口,使开发人员可以方便地在自己的C/C++项目中使用Redis。Hiredis是一个开源项目,可从其官方GitHub仓库获取源代码,并在符合BSD许可证的条件下使用和分......
  • 智能化制造:一种新的生产模式
    目录1.引言2.技术原理及概念3.实现步骤与流程4.应用示例与代码实现讲解5.优化与改进6.结论与展望智能化制造:一种新的生产模式随着人工智能技术的不断发展,智能化制造成为了现代制造业的一个重要趋势。智能化制造能够实现生产过程中的自动化、智能化和数据化,提高生产效率和......
  • 20230430 28. 访问者模式 - 男女对比
    介绍访问者模式(Visitor),表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作访问者模式适用于数据结构相对稳定的系统访问者模式把数据结构和作用于结构上的操作之间的耦合解脱开,使得操作集合可以相对自由地演化。......
  • 20230427 23. 命令模式 - 烧烤点单
    介绍命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作Command类,用来声明执行操作的接口ConcreteCommand类,将一个接收者对象绑定于一个动作,调用接收者相应的操作,以实现executeCommandInvoker......
  • 20230428 24. 职责链模式 - 审批流程
    介绍职责链模式(ChainofResponsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。Handler类,定义一个处理请示的接口ConcreteHandler类,具体处理者类,处理它所负责的请......