Decorator pattern Leader : Jiankang Gong Member : Xuanya Jiao Jiahong Chen Jiajian Shi Zhen Du lulu Han Tian Han.

Slides:



Advertisements
Similar presentations
四川财经职业学院会计一系会计综合实训 目录 情境 1.1 企业认知 情境 1.3 日常经济业务核算 情境 1.4 产品成本核算 情境 1.5 编制报表前准备工作 情境 1.6 期末会计报表的编制 情境 1.2 建账.
Advertisements

主编:邓萌 【点按任意键进入】 【第六单元】 教育口语. 幼儿教师教育口 语概论 模块一 幼儿教师教育口语 分类训练 模块二 适应不同对象的教 育口语 模块三 《幼儿教师口语》编写组.
第一組 加減法 思澄、博軒、暐翔、寒菱. 大綱 1. 加減法本質 2. 迷思概念 3. 一 ~ 七冊分析 4. 教材特色.
海南医学院附 院妇产科教室 华少平 妊娠合并心脏病  概述  妊娠、分娩对心脏病的影响  心脏病对妊娠、分娩的影响  妊娠合病心脏病的种类  妊娠合并心脏病对胎儿的影响  诊断  防治.
植树节的由来 植树节的意义 各国的植树节 纪念中山先生 植树节的由来 历史发展到今天, “ 植树造林,绿化祖国 ” 的热潮漫卷 了中华大地。从沿海到内地,从城市到乡村,涌现了多少 造林模范,留下了多少感人的故事。婴儿出世,父母栽一 棵小白怕,盼望孩子和小树一样浴光吮露,茁壮成长;男 女成婚,新人双双植一株嫩柳,象征家庭美满,幸福久长;
客户协议书 填写样本和说明 河南省郑州市金水路 299 号浦发国际金融中 心 13 层 吉林钰鸿国创贵金属经营有 限公司.
浙江省县级公立医院改革与剖析 马 进 上海交通大学公共卫生学院
第二章 环境.
教师招聘考试 政策解读 讲师:卢建鹏
了解语文课程的基本理念,把握语文素养的构成要素。 把握语文教育的特点,特别是开放而有活力的语文课程的特点。
北台小学 构建和谐师生关系 做幸福教师 2012—2013上职工大会.
福榮街官立小學 我家孩子上小一.
第2期技職教育再造方案(草案) 教育部 101年12月12日 1 1.
企业员工心态管理培训 企业员工心态管理培训讲师:谭小琥.
历史人物的研究 ----曾国藩 组员: 乔立蓉 杜曜芳 杨慧 组长:马学思 杜志丹 史敦慧 王晶.
教育部高职高专英语类专业教学指导委员会 刘黛琳 山东 • 二○一一年八月
淡雅诗韵 七(12)班 第二组 蔡聿桐.
第七届全国英语专业院长/系主任高级论坛 汇报材料
小數怕長計, 高糖飲品要節制 瑪麗醫院營養師 張桂嫦.
制冷和空调设备运用与维修专业 全日制2+1中等职业技术专业.
会计信息分析与运用 —浙江古越龙山酒股份有限公司财务分析 组员:2006级工商企业管理专业 金国芳 叶乐慧 魏观红 徐挺挺 虞琴琴.
第六章 人体生命活动的调节 人体对外界环境的感知.
芹菜 英语051班 9号 黄秋迎 概论:芹菜是常用蔬菜之一,既可热炒,又能凉拌,深受人们喜爱。近年来诸多研究表明,这是一种具有很好药用价值的植物。 别名:旱芹、样芹菜、药芹、香芹、蒲芹 。 芹菜属于花,芽及茎类。
2012年 学生党支部书记工作交流 大连理工大学 建工学部 孟秀英
北京市职业技能鉴定管理中心试题管理科.
2014吉林市卫生局事业单位招聘153名工作人员公告解读
各類所得扣繳法令 與申報實務 財政部北區國稅局桃園分局 103年9月25日
初級游泳教學.
爱国卫生工作的持续发展 区爱卫办 俞贞龙.
第八章 数学活动 方程组图象解法和实际应用
本课内容提要 一、汇率的含义 二、汇率变化与币值的关系 三、汇率变化的影响. 本课内容提要 一、汇率的含义 二、汇率变化与币值的关系 三、汇率变化的影响.
散文鉴赏方法谈.
比亚迪集成创新模式探究 深圳大学2010届本科毕业论文答辩 姓名:卓华毅 专业:工商管理 学号: 指导老师:刘莉
如何撰写青年基金申请书 报 告 人: 吴 金 随.
点击输 入标题 点击输入说明性文字.
國際志工海外僑校服務 越南 國立臺中教育大學 2010年國際志工團隊.
痰 饮.
學分抵免原則及 學分抵免線上操作說明會.
教 学 查 房 黄宗海 南方医科大学第二临床医学院 外科学教研室.
评 建 工 作 安 排.
“十二五”国家科技计划经费管理改革培训 概预算申报与审批 国家科学技术部 2012年5月.
“十二五”国家科技计划经费管理改革培训 概预算申报与审批 国家科学技术部 2012年5月.
首都体育学院 武术与表演学院 张长念 太极拳技击运用之擒拿 首都体育学院 武术与表演学院 张长念
现行英语中考考试内容与形式的利与弊 黑龙江省教育学院 于 钢 2016, 07,黄山.
第5讲:比较安全学的创建 吴 超 教授 (O)
彰化縣西勢國小備課工作坊 新生入學的班級經營 主講:黃盈禎
重庆市西永组团K标准分区基本情况介绍.
西貢區歷史文化 清水灣 鍾礎營,楊柳鈞,林顥霖, 譚咏欣,陳昭龍.
所得稅扣繳法令與實務 財政部北區國稅局桃園分局 102年12月19日 1 1.
角 色 造 型 第四章 欧式卡通造型 主讲:李娜.
走进校园流行 高二15班政治组 指导老师:曾森治老师.
医院文化建设 广东省中医院 2011年3月26日.番禺.
案例:海底捞模式 ——把服务做到极致.
医疗法律法规培训 连云港市东辛农场医院 周卫平 二0一四年十二月.
老人健康促進之 成效評估與展現 高雄市政府衛生局 李素華 2014/05/15.
史泰博出货检验员面试中·········
09英本2班 罗芬.
个人所得税 扣缴申报表填报讲解.
主講人:孫台義 教授 哈薩克大學國際關係學院 客座教授
土地增值税清算业务培训 主讲人:吴金娟 怀集地税.
华夏证券之殇 刘洋 林祺俊 吴哲.
第14章 c++中的代码重用.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
第13章 装饰模式 Deng Song
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
$9 泛型基础.
105學年度 新北市英語歌曲演唱競賽 志工工作會議 105年11月18日 9:30-10:00 碧華國小演講廳 新北市三重區碧華國小.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
辅导课程十五.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
Presentation transcript:

Decorator pattern Leader : Jiankang Gong Member : Xuanya Jiao Jiahong Chen Jiajian Shi Zhen Du lulu Han Tian Han

Content 引言 实例分析与简介 优缺点 适用场景

穿衣服有多重要?

装饰第一版

装饰第二版 实例化装饰类,调用装饰类的 方法来实现装饰功能

装饰模式 定义:动态地给一个对象添加一些额外的 职责,就增加功能老说,装饰模式比生成 子类更为灵活 修饰模式是类继承的另外一种选择:类继 承是在编译时增加行为,而装饰模式是在 运行时增加行为 装饰模式以对客户透明的方式动态地给一 个对象附加上更多的责任,换言之,客户 端并不会觉得对象在装饰前和装饰后有什 么不同。装饰模式可以在不需要创造更多 子类的情况下,将对象的功能加以扩展。

原理

装饰第三版

齐天大圣

源代码 具体构件角色 “ 大圣本尊 ” 猢狲类

抽象装饰角色 “ 七十二变 ” 具体装饰角色 “ 鱼儿 ” 具体装饰角色 “ 鸟儿 ” 客户端类

“ 见证奇迹的时刻 ” Monkey Move Birds Move Fish Move Fish Move ???

优点 装饰模式与继承关系的目的都是要扩展对象的功 能,但是装饰模式可以提供比继承更多的灵活性。 可以通过一种动态的方式来扩展一个对象的功能, 通过配置文件可以在运行时选择不同的装饰器, 从而实现不同的行为。 通过使用不同的具体装饰类以及这些装饰类的排 列组合,可以创造出很多不同行为的组合。可以 使用多个具体装饰类来装饰同一对象,得到功能 更为强大的对象。 具体构件类与具体装饰类可以独立变化,用户可 以根据需要增加新的具体构件类和具体装饰类, 在使用时再对其进行组合,原有代码无须改变, 符合 “ 开闭原则 ”

缺点 使用装饰模式进行系统设计时将产生很多小对象, 这些对象的区别在于它们之间相互连接的方式有 所不同,而不是它们的类或者属性值有所不同, 同时还将产生很多具体装饰类。这些装饰类和小 对象的产生将增加系统的复杂度,加大学习与理 解的难度。 这种比继承更加灵活机动的特性,也同时意味着 装饰模式比继承更加易于出错,排错也很困难, 对于多次装饰的对象,调试时寻找错误可能需要 逐级排查,较为烦琐。

适用场景 在不影响其他对象的情况下,以动态、透明的方 式给单个对象添加职责。 需要动态地给一个对象增加功能,这些功能也可 以动态地被撤销。 当不能采用继承的方式对系统进行扩充或者采用 继承不利于系统扩展和维护时。不能采用继承的 情况主要有两类:第一类是系统中存在大量独立 的扩展,为支持每一种组合将产生大量的子类, 使得子类数目呈爆炸性增长;第二类是因为类定 义不能继承(如 final 类)

总结 装饰者模式挺像一种组合、而且是 可以任意搭配、制定的。当我们有 新的需求的时候、添加一个装饰器 就 ok 。必要的时候可以添加组件、 这样就实现了不用修改现有代码就 可以扩展和修改新的功能的一个目 的。

友情提示 ● 抽象构件 (Component) 角色:由 InputStream 扮演。这是一个抽象类, 为各种子类型提供统一的接口。 ● 具体构件 (ConcreteComponent) 角色:由 ByteArrayInputStream 、 FileInputStream 、 PipedInputStream 、 StringBufferInputStream 等类扮演。它 们实现了抽象构件角色所规定的接口。 ● 抽象装饰 (Decorator) 角色:由 FilterInputStream 扮演。它实现了 InputStream 所规定的接口。 ● 具体装饰 (ConcreteDecorator) 角色:由几个类扮演,分别是 BufferedInputStream 、 DataInputStream 以及两个不常用到的类 LineNumberInputStream 、 PushbackInputStream 。

Thank you !

Test 在东大东门外一家肯德基,小贱周末和女朋友一人点了一个汉堡, 小贱要了沙拉加肉,小贱的女朋友要了沙拉加蔬菜。请写一个具体 构建角色类(汉堡包类),一个抽象装饰类(材料类),三个具体 装饰类(蔬菜类,肉类,沙拉类),一个测试类

具体构建角色类(汉堡包类)抽象装饰类 具体装饰类 1 (沙拉类)具体装饰类 2 (蔬菜类)

具体装饰类 3 (肉类) 测试类