设计模式之GOF23装饰模式
装饰模式decorator
作用:
-动态的为一个对象增加新功能
-装饰模式是一种用于代替继承的技术,无需通过增加子类就能扩展对象的新功能,适用对象的组合关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀
角色:
-Component抽象构件角色:真实对象和装饰对象具有相同的接口,这样,客户端对象就能够以与真实对象相同的方式与装饰对象进行交互
-ConcreteComponent具体构件角色(真实对象):被装饰的角色
-Decorator装饰角色:实现相同接口,并持有一个抽象构件的引用,这样既可以完成客户端的所有请求,又可以增添新的功能
-ConcreteDecorator具体装饰角色:负责给构建对象增加新的责任
装饰模式和桥接模式的区别:
两个模式都是为了解决过多子类对象问题,但桥接模式的诱因是多个维度多个原因导致的多重继承,装饰模式是为了增加新的功能
例子:跑车
设计模式之GOF23装饰模式相关推荐
- 大话设计模式C++版——装饰模式
女人常说男人喜新厌旧.仅仅见新人笑,那闻旧人哭,但装饰模式(Decorator)却是一种结交新朋友不忘老朋友的设计模式,很适合去古代当老公(现代是不行的.由于仅仅能娶一个老婆了).装饰模 ...
- 【设计模式 03】装饰模式——俄罗斯套娃?
装饰模式(俄罗斯套娃?) 装饰模式:动态的给某些对象添加额外的功能 参考: 简书 | 装饰模式 博客园 | 简说设计模式--装饰模式 博客园 | 装饰器模式 Decorator 结构型 设计模式 (十 ...
- 设计模式系列之装饰模式(Decorator Pattern)
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装.这种模式创建了一个装饰类,用来包装原 ...
- JAVA设计模式 之九 装饰模式
装饰模式(装饰设计模式)详解 在现实生活中,常常需要对现有产品增加新的功能或美化其外观,如房子装修.相片加相框等. 在软件开发过程中,有时想用一些现存的组件.这些组件可能只是完成了一些核心功能.但在不 ...
- 设计模式之略见一斑(装饰模式decorator)
标头:(引自设计模式) 为了扩展代码库,通常给它添加新类或者新方法.有时候,你也许不希望在运行时候使用新行为来组合对象.Interpreter模式允许你组合可执行对象,这个对象的行为可能变化会非常快. ...
- 简易理解设计模式之:装饰模式——穿衣服经典案例
介绍: 装饰模式属于结构型模式.它动态地给一个对象添加额外的职责,就增加功能来说,装饰模式比生成子类更加灵活. 类图: 装饰模式UML类图.png Component(抽象组件):接口或者抽象类,被装 ...
- 【C#设计模式】8.装饰模式(Decorator Pattern)【结构型】
[C#设计模式]总目录-共23种 [C#设计模式]装饰模式(Decorator Pattern)[结构型] 前言 一.模式的详细介绍 1.1 动机(Motivate) 1.2 意图(Intent) 1 ...
- JAVA中的设计模式四(装饰模式)
-------装饰模式 装饰模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装. 这种模式创建 ...
- 设计模式03:装饰模式
系列总链接:https://blog.csdn.net/qq_22122811/article/details/112360387 参考:https://blog.csdn.net/hnust_xie ...
- java中装潢模式_JAVA中的设计模式四(装饰模式)
-------装饰模式 装饰模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装. 这种模式创建 ...
最新文章
- 【学习笔记】16、常用内置函数(Built-in Functions)
- Git 索引文件(index file)
- javascript进阶教程第二章对象案例实战
- Android 自定义控件 ViewPager头部指示器控件 ViewPagerBelowIndicator
- 单片机c语言数码显示实验报告,单片机动态显示技术实验报告.doc
- linux 重复执行脚本,防止shell脚本重复执行的代码
- Java 蓝桥杯 字符串基本用法
- SQL Server 数据库原理与应用
- 如何在Java中获取系统属性?
- AJAX - 浏览器支持
- 数字图像处理(21): 图像金字塔(高斯金字塔 与 拉普拉斯金字塔)
- 【机器学习基石】感知机模型+PLA(二)
- grads 相关系数_气象绘图软件GrADS高级使用技巧
- bochs运行xp_bochs xp镜像
- Python参考文献
- 设计一个Dog类,包含名字,年龄,颜色三个属性
- 图片文件,图片文件流和BASE64加密字符串之间的转换,以及图片的BASE64加密字符串再jsp上如何显示
- 等保三级核心-主机安全
- php单链表检测有没有环,PHP 和 Go 实现环路链表检测
- 惯导运算中的常值国际单位制惯导中常用单位