结构型模式-----装饰模式(decorator)
1、装饰模式
动态的给一个对象添加一些额外的职责,就增加功能来说Decorator模式相比生成子类更为灵活。
要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。
实例一:
public interface Source {public void method();}public class SourceChild implements Source {@Overridepublic void method() {System.out.println(" ~~~~ method() ~~~~~");}}public class Decorator implements Source {private Source source = null;public Decorator(final Source source) {this.source = source;}@Overridepublic void method() {this.source.method();System.out.println(" ~~~ method2() ~~~");}}
模拟测试:
public class Client {public static void main(final String[] args) {final SourceChild sc = new SourceChild();final Decorator dt = new Decorator(sc);dt.method();}
}
结构型模式-----装饰模式(decorator)相关推荐
- 结构型模式:Decorator 装饰模式
为什么80%的码农都做不了架构师?>>> 结构型模式:Decorator 装饰模式 1.子类复子类,子类何其多 1)假如我们需要为游戏中开发一种坦克,除了各种不同型号的坦克 ...
- 设计模式-结构型模式-装饰模式
设计模式-结构型模式-装饰模式 栗子 以成绩单需要家长签字为要求. 成绩单类图 // 抽象成绩单 public abstract class SchoolReport{// 成绩单你的成绩情况publ ...
- 结构型模式-装饰模式(扩展系统功能)
目录 1. 定义 2. 结构 3. 代码实现 4. 透明装饰模式与半透明装饰模式 4.1 透明装饰模式 4.2 半透明装饰模式 5. 注意事项 6. 优缺点 7. 适用场景 8. 个人理解 参考 装饰 ...
- 5.4结构型模式—————装饰模式
装饰模式的定义与特点 装饰(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式. 装饰(Decorator)模式 ...
- 结构型模式——装饰模式
装饰模式的定义与特点 装饰(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式. 装饰(Decorator)模式 ...
- 【设计模式】结构型模式——装饰模式
文章目录 一.定义 二.问题 三.解决方案 四.实现 五.UML图 六.装饰模式应用场景 七.总结 优点 缺点 八.与其他模式的关系 一.定义 装饰模式是一种结构型设计模式, 允许你通过将对象放入包含 ...
- 10 结构型模式-----装饰模式
模式动机(Decorator Pattern):我们在给一个类进行功能扩展时,总是通过继承或者复合关系,使得一个类具有其他相关类型的功能,继承本身属于静态关联,派生类比较臃肿,使用者也不能控制增加功能 ...
- C++结构型模式-装饰模式
1.1 基本概念 装饰器模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,就增加功能来说,装饰器比生成子类实现更为灵活. 装饰器可以在不改变对象本身的基础上给对象增加额外 ...
- 结构型模式之Decorator模式
1.意图 动态地给一个对象添加一些额外的职责.就增加功能来说,Decorator模式相比生成子类更为灵活 2.适用性 以下情况使用Decorator模式 (1)在不影响期货对象的情况下,以动态.透明的 ...
最新文章
- 隐藏在Win XP中的28个秘密武器
- oracle分区和锁的难,oracle使用三(锁和表分区)
- 『ACM』ACM模板合集
- 【Docker】Docker 一个偶现的错误 bash命令突然找不到
- 不知为不知--信息论和最大熵原则
- 网页游戏开发入门教程一(webgame+design)
- 电机不动 米兔机器人_深度解密米兔积木机器人八大黑科技
- html点击复制一段文字内容,js实现点击按钮复制文本功能
- nofollow标签的写法与作用
- Java中求珠穆朗玛峰问题
- ROS2极简总结-新增概念
- Android Studio配置优化最全详解
- vue插槽,内容分发
- There is no getter for property named xxx in xxx
- 计算机图形学 旋转平移原理,计算机图形旋转操作详细步骤
- Python Socket 编程详细介绍
- 2022年尿素行业分析
- ASP.NET统计在线人数
- 深度分析|一文读懂银行数据架构体系
- matlab空间杜宾模型命令,matlab 空间杜宾模型
热门文章
- 计算机编码方式详解(Unicode、UTF-8、UTF-16、ASCII)
- Linux第四章:1.Linux关机、重启、休眠、切换用户命令大全
- 2022年全球市场距离和位置传感器总体规模、主要生产商、主要地区、产品和应用细分研究报告
- fedora php mysql_Fedora 8下用Yum安装Apache+PHP+MySQL环境
- abaqus的XFEM(扩展有限元)使用限制
- android classes2.dex,原创??近乎完美解决AndroidKiller不提取classes2+.dex JAVA源码的问题...
- 我,机械工程硕士,工作一年,月入6K
- socket.io搭建分布式Web推送服务器
- oracle metalink网址,oracle metalink账号|Oracle Metalink账号注册指南-创客空间
- An Optimistic Perspective on Offline Reinforcement Learning(ICML2020)