[Java基础教程 ]装饰者模式ppt课件.ppt

上传人:牧羊曲112 文档编号:2044880 上传时间:2023-01-03 格式:PPT 页数:13 大小:526KB
返回 下载 相关 举报
[Java基础教程 ]装饰者模式ppt课件.ppt_第1页
第1页 / 共13页
[Java基础教程 ]装饰者模式ppt课件.ppt_第2页
第2页 / 共13页
[Java基础教程 ]装饰者模式ppt课件.ppt_第3页
第3页 / 共13页
[Java基础教程 ]装饰者模式ppt课件.ppt_第4页
第4页 / 共13页
[Java基础教程 ]装饰者模式ppt课件.ppt_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《[Java基础教程 ]装饰者模式ppt课件.ppt》由会员分享,可在线阅读,更多相关《[Java基础教程 ]装饰者模式ppt课件.ppt(13页珍藏版)》请在三一办公上搜索。

1、装饰者模式,马剑威,第 110 讲,课程大纲,1、继承带来的问题2、装饰者模式概述3、装饰者模式实现4、装饰者模式小结,话说威哥当年创业开店卖豆浆!因豆浆纯,分店几乎开遍全县城所有村,由于发展的实在是太快了,所以急于实现一套由计算机管理的自动化记账系统。主料:豆浆配料:糖黑豆五谷鸡蛋,1、继承带来的问题,1、继承带来的问题,类爆炸!,2、装饰者模式概述,所以下面我们将拜访一下今天的主角装饰者模式,看看她能给我们带来什么惊喜吧!意图:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。该模式以对客户端透明的方式扩展对象的功能。,2、装饰者模式概述,适用

2、环境在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。处理那些可以撤消的职责。当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。,2、装饰者模式概述,2、装饰者模式概述,Component(被装饰对象基类)定义对象的接口,可以给这些对象动态增加职责;ConcreteComponent(具体被装饰对象)定义具体的对象,Decorator可以给它增加额外的职责;Decorator(装饰者抽象类)维护一个指向Component实例的引用,并且定义了

3、与Component一致的接口;ConcreteDecorator(具体装饰者)具体的装饰对象,给内部持有的具体被装饰对象增加具体的职责;,2、装饰者模式概述,涉及角色抽象构件角色:定义一个抽象接口,来规范准备附加功能的类。具体构件角色:将要被附加功能的类,实现抽象构件角色接口。抽象装饰者角色:持有对具体构件角色的引用并定义与抽象构件角色一致的接口。具体装饰角色:实现抽象装饰者角色,负责为具体构件添加额外功能。,3、装饰者模式实现,Drink.java被装饰者对象的接口SoyaBeanMilk.java具体的被装饰者对象EggDecorator.java具体装饰者对象SugarDecorato

4、r.java具体装饰者对象BlackBeanDecorator.java具体装饰者对象Decorator.java装饰者基类Test.java测试,4、装饰者模式小结,OO原则:动态地将责任附加到对象上。想要扩展功能,装饰者提供有别于继承的另一种选择。要点:1、继承属于扩展形式之一,但不见得是达到弹性设计的最佳方案。2、在我们的设计中,应该允许行为可以被扩展,而不须修改现有的代码。3、组合和委托可用于在运行时动态地加上新的行为。4、除了继承,装饰者模式也可以让我们扩展行为。,4、装饰者模式小结,要点:5、装饰者模式意味着一群装饰者类,这些类用来包装具体组件。6、装饰者类反映出被装饰的组件类型(实际上,他们具有相同的类型,都经过接口或继承实现)。7、装饰者可以在被装饰者的行为前面与/或后面加上自己的行为,甚至将被装饰者的行为整个取代掉,而达到特定的目的。8、你可以有无数个装饰者包装一个组件。9、装饰者一般对组建的客户是透明的,除非客户程序依赖于组件的具体类型。,谢谢,Thanks,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号