首页 > 作文

Java装饰者模式的示例详解

更新时间:2023-04-05 22:08:53 阅读: 评论:0

定义

装饰者模式:在不改变原有对象的基础之上,动态的将功能附加到对象上,提供了继承更有弹性的替代方案,也体现了开闭原则

案例

需求

一个人去咖啡店点了一杯卡布奇诺,加了一份热牛奶

方案

定义咖啡基类

定义卡布奇诺咖啡类,继承咖啡基类

定义装饰者类

定义热牛奶类

定义测试类

查看测试结果

分析

装饰者模式的目的也是为了扩展对象的功能,是继承的一个替代模式,可以动态的扩展一个实现类的功能,装饰类和被装饰类可以相互独立,不会耦合,灵杞人忧天的寓言故事活方便。

使用场景

需要给一个现有类添加职责,但是有不能采用生成子类的方式去扩充的时pearl harbour候,当需要对于现有的一组基本功能进行组合,会产生非常多的功能的时候当对象的功能要求可以动态的添加,或者说的动态的撤销

知识点补充

装饰模式的定义和特点

在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地何为幸福扩展其功能。所有这些都可以釆用装饰器模式来实现。

就像我们做菜,需要用到调料,菜,刀,火等一系列抽象的组件来最终完成一道菜。

装饰模式的定义:

指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。就增加功能来说,装饰模式比生成子类更加灵活。

特点:

装饰器是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态的给一个对象扩展功能,即插即用通过使用不用装饰类及这些装饰类的排列组合,可以实现不同效果装饰器模式完全遵守开闭原则

缺资治通鉴翻译点

装饰器模式会增加许多子类,过度使用会增加程序得复杂性。

装饰模式的结构

装饰模式的结构一般包含以下几个角色

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 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图