装饰者模式:在不改变原有对象的基础之上,动态的将功能附加到对象上,提供了继承更有弹性的替代方案,也体现了开闭原则
一个人去咖啡店点了一杯卡布奇诺,加了一份热牛奶
定义咖啡基类
定义卡布奇诺咖啡类,继承咖啡基类
定义装饰者类
定义热牛奶类
定义测试类
查看测试结果
装饰者模式的目的也是为了扩展对象的功能,是继承的一个替代模式,可以动态的扩展一个实现类的功能,装饰类和被装饰类可以相互独立,不会耦合,灵杞人忧天的寓言故事活方便。
装饰模式的定义和特点
在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地何为幸福扩展其功能。所有这些都可以釆用装饰器模式来实现。
就像我们做菜,需要用到调料,菜,刀,火等一系列抽象的组件来最终完成一道菜。
装饰模式的定义:
指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。就增加功能来说,装饰模式比生成子类更加灵活。
特点:
装饰器是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态的给一个对象扩展功能,即插即用通过使用不用装饰类及这些装饰类的排列组合,可以实现不同效果装饰器模式完全遵守开闭原则缺资治通鉴翻译点
装饰器模式会增加许多子类,过度使用会增加程序得复杂性。
装饰模式的结构
装饰模式的结构一般包含以下几个角色
1. 抽象构件(component)角色:定义一个抽象接口以规范准备接收附加责任的对象。
2. 具体构件(concretecomponent)角色:实现抽象构件,通过装饰角色为其添加一些职责。
3. 抽象装饰(decorator)角色:继承抽象构件,并包含具体构件的实例,可以通过其子类扩展具体构件的功能。
4. 具体装饰(concretedecorator)角色:实现抽象装饰的相关方法,并给具体构件对象添加附加的责任。
到此这篇关于java装饰者模式的示例详解的文章就介绍到这了,更多相关java装饰者模式内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!快乐暑假的手抄报
本文发布于:2023-04-05 22:08:52,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/9fd2efa3810e688b72a655f4b70cfdcd.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Java装饰者模式的示例详解.doc
本文 PDF 下载地址:Java装饰者模式的示例详解.pdf
留言与评论(共有 0 条评论) |