- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第12章_装饰模式
Copyright 2008 TietoEnator Corporation Copyright 2008 TietoEnator Corporation Copyright 2008 TietoEnator Corporation Copyright 2008 TietoEnator Corporation Copyright 2008 TietoEnator Corporation Copyright 2008 TietoEnator Corporation Copyright 2008 TietoEnator Corporation Copyright 2008 TietoEnator Corporation 模式设计(JAVA) 商学院 信管专业教研室 韩 娜 电话: 661905 办公室: HG406 装饰模式 * * 装饰模式(别名:包装器) 动态地给对象添加一些额外的职责。就功能来说装饰模式相比生成子类更为灵活。 Decorator Pattern(Another Name: Wrapper) Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality. 一 、 概述 * * 装饰模式是动态地扩展一个对象的功能,而不需要改变原始类代码的一种成熟模式。在装饰模式中,“具体组件”类和“具体装饰”类是该模式中的最重要的两个角色。 实例 * * 假设系统中有一个Bird抽象类以及Bird类的一个子类:Sparrow。 Sparrow类实现了Bird类的fly方法,使得Sparrow类创建的对象调用fly方法能连续飞行100米。现在用户需要两种鸟,必须分别 能连续飞行150米和200米。 二、装饰模式模式的结构与使用 * * 装饰模式的结构中包括四种角色: 抽象组件(Component) 具体组件(ConcreteComponent) 装饰(Decorator) 具体装饰(ConcreteDecotator) * * 装饰模式的UML类图 * * 装饰模式的结构的描述与使用 1.抽象组件 : Bird.java public abstract class Bird{ public abstract int fly(); } * * 装饰模式的结构的描述与使用 2.具体组件 : Sparrow.java(麻雀) public class Sparrow extends Bird{ public final int DISTANCE=100; public int fly(){ return DISTANCE; } } * * 装饰模式的结构的描述与使用 3.装饰 (Decorator): Decorator.java public abstract class Decorator extends Bird{ protected Bird bird; public Decorator(){ } public Decorator(Bird bird){ this.bird=bird; } } * * 装饰模式的结构的描述与使用 4.具体装饰(ConcreteDecotator): SparrowDecorator.java public class SparrowDecorator extends Decorator{ public final int DISTANCE=50; //eleFly方法能飞50米 SparrowDecorator(Bird bird){ super(bird); } public int fly(){ int distance=0; distance=bird.fly()+eleFly(); return distance; } private int eleFly(){ //装饰者新添加的方法 return DISTANCE; } } * * 装饰模式的结构的描述与使用 5.应用 Application.java public class Application{ public void needBird(Bird bird){
您可能关注的文档
- 03 VBA的代码结构.pptx
- cha12 代码生成.ppt
- 精编内经-8-14.ppt
- graves病 护理查房.ppt
- 诗歌专题复习精编版.ppt
- 7《尊严》(精编版).ppt
- 七年级上生物期中复习精编版.ppt
- 命令模式(附代码,实现撤销和重做).pptx
- 第1章地图分幅编号.ppt
- 砌筑工程精编.ppt
- 专业定制版出轨离婚合同书2024年版.docx
- 三方餐饮合作协议:2024年实施细则版B版.docx
- 精简型通信信息安全必威体育官网网址合同2024模板版B版.docx
- 精选2024包年服务简化协议范本版A版.docx
- 精选服务专项必威体育官网网址协议.docx
- 精简版2024年副食品购销协议范本版B版.docx
- 职工停薪留职权利义务明确协议一.docx
- 2025版高考历史大一轮复习第二单元西方政治文明的演进第5讲英国的制度创新和北美大陆上的新体制教案含解析岳麓版.doc
- 2025版高中英语Module6UnexplainedMysteriesoftheNaturalWorldSectionⅡGrammar课时作业17外研版必修4.doc
- 2024_2025学年高中政治第一单元基本经济制度与经济体制第二课我国的社会主义市抄济体制1使市场在资源配置中起决定作用基础练习含解析部编版必修2.doc
文档评论(0)