设计模式学习探讨

上传人:痛*** 文档编号:216843245 上传时间:2023-06-08 格式:PPT 页数:16 大小:265KB
返回 下载 相关 举报
设计模式学习探讨_第1页
第1页 / 共16页
设计模式学习探讨_第2页
第2页 / 共16页
设计模式学习探讨_第3页
第3页 / 共16页
点击查看更多>>
资源描述
设计模式学习探讨设计模式学习探讨适配器模式适配器模式 Adapter Pattern桥接模式桥接模式 Bridge Pattern装饰模式装饰模式 Decorator Pattern整理人:陈缓1前言谁在改变世界?谁在改变世界?u选择单位:政府,企业,教学机构,科研单位选择单位:政府,企业,教学机构,科研单位u企业是推动世界向前发展的主要动力。企业是推动世界向前发展的主要动力。u企业只会寻找适合世界发展的最好路径,适者生存,不适企业只会寻找适合世界发展的最好路径,适者生存,不适者灭亡。者灭亡。u李彦宏:做企业是改变世界的最好方式。李彦宏:做企业是改变世界的最好方式。2学习前的思考为什么要学习?为什么要学习?u学习是为了更好的改变世界。学习是为了更好的改变世界。u学习不是简单的继承,重要的是派生。学习不是简单的继承,重要的是派生。u要去其糟粕,取其精华。要去其糟粕,取其精华。u站在巨人的肩膀上,选择巨人很重要。站在巨人的肩膀上,选择巨人很重要。3学习的方法怎么样才学习更好?怎么样才学习更好?u理解背景,知识的应用范围,才能做到理论联系实际。理解背景,知识的应用范围,才能做到理论联系实际。u理解作者的本意,目的。理解作者的本意,目的。u批判式的学习。批判式的学习。u为什么要按照作者的方法去做,这样做有什么好处,不这为什么要按照作者的方法去做,这样做有什么好处,不这样做,又有什么更好的方法。样做,又有什么更好的方法。u理论只有经过实践验证才是知识。理论只有经过实践验证才是知识。u知识是严肃的,来不得半点虚假,是理性的世界。和日常知识是严肃的,来不得半点虚假,是理性的世界。和日常生活不同,人和人是感性的世界。生活不同,人和人是感性的世界。4为什么要学习设计模式 在人类努力解决的许多领域的成功方案都来源于各种模式在人类努力解决的许多领域的成功方案都来源于各种模式(Patterns)。事实上。事实上,教育的一个重要目标教育的一个重要目标就是把知识的模式一代一代传下去。下面我们首先看一下学习下棋是怎样用到模式就是把知识的模式一代一代传下去。下面我们首先看一下学习下棋是怎样用到模式(patterns)。学习。学习开发一个好的程序类似于学习怎样下好棋开发一个好的程序类似于学习怎样下好棋.成为一个象棋大师成为一个象棋大师首先学习规则和必要条件:例如首先学习规则和必要条件:例如,棋子的名称棋子的名称,合法的棋子移动合法的棋子移动,棋盘的几何形状和方向等棋盘的几何形状和方向等然后学习原理:然后学习原理:例如某一种棋子的相对价值例如某一种棋子的相对价值,中心格的战略价值中心格的战略价值,威胁的强度等威胁的强度等然而要成为象棋大师然而要成为象棋大师,你必须要学习其他大师下过的棋局,这些棋局就包含有模式你必须要学习其他大师下过的棋局,这些棋局就包含有模式(patterns),这些,这些模式模式(patterns)必须被理解,记忆和重复的运用,必须被理解,记忆和重复的运用,有很多种这样的模式有很多种这样的模式(patterns)成为一个软件设计大师成为一个软件设计大师首先学习规则:例如算法首先学习规则:例如算法,数据结构和软件语言数据结构和软件语言然后学习原理:例如结构化编程然后学习原理:例如结构化编程,模块化编程模块化编程,面向对象编程面向对象编程,泛编程泛编程(general programming)等等但是要真正的精通软件设计但是要真正的精通软件设计,你必须学习其他大师级的设计,你必须学习其他大师级的设计,这些设计包含的模式这些设计包含的模式(patterns)必须被必须被理解,记忆和重复的运用理解,记忆和重复的运用有很多种这样的模式有很多种这样的模式(patterns)5怎么选择设计模式考虑设计模式是怎样解决设计问题的考虑设计模式是怎样解决设计问题的浏览模式的意图浏览模式的意图研究模式怎样互相关联研究模式怎样互相关联研究目的相似的模式研究目的相似的模式检查重新设计的原因检查重新设计的原因考虑你的设计中哪些是可变的考虑你的设计中哪些是可变的6怎么使用设计模式阅读这个模式的整体概观;尤其是适用性阅读这个模式的整体概观;尤其是适用性(applicability)(applicability)及结论及结论(consequences)(consequences)这两个小节,以确认此模式适合你的问题。这两个小节,以确认此模式适合你的问题。回头研究其结构回头研究其结构(structure)(structure)、参与者、参与者(participants)(participants)及合作者及合作者(collaborations)(collaborations)三小节;以了解此模式中的类别及对象及其关联。三小节;以了解此模式中的类别及对象及其关联。研读范例程序代码研读范例程序代码(sample code)(sample code)之范例;可协助你学习如何实作此模式。之范例;可协助你学习如何实作此模式。选择针对应用系统背景有意义的模式参与者选择针对应用系统背景有意义的模式参与者(participants)(participants)名称;可以让此名称;可以让此模式更精确使用在应用系统中。命名方式是结合参与者的名称及应用系统中模式更精确使用在应用系统中。命名方式是结合参与者的名称及应用系统中所使用的名称。所使用的名称。定义类别;宣告其界面;建立其继承关系;定义表达数据及对象参考的实例定义类别;宣告其界面;建立其继承关系;定义表达数据及对象参考的实例变量,确认现存类别中与此模式有关的类别并相对的修改它。变量,确认现存类别中与此模式有关的类别并相对的修改它。为此应用系统使用之模式的操作定义名称;此操作的名称系依赖此应用系统为此应用系统使用之模式的操作定义名称;此操作的名称系依赖此应用系统来命名;利用其责任及合作组合作为依据。来命名;利用其责任及合作组合作为依据。实作这些操作来达成其在模式中的责任及合作关系,在实作实作这些操作来达成其在模式中的责任及合作关系,在实作(implementation)(implementation)小节内提供相关的指引;同时例程序代码小节内提供相关的指引;同时例程序代码(sample code)(sample code)中中的程序代码也可协助你。的程序代码也可协助你。7适配器模式 Adapter Pattern 意图:意图:将一个类的接口转换成客户希望的另外一个接口。将一个类的接口转换成客户希望的另外一个接口。AdapterAdapter模式使得原本由于接口不兼容而不能一起工作的模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。那些类可以一起工作。动机:动机:有时,为复用而设计的工具箱类不能够被复用的原因仅仅有时,为复用而设计的工具箱类不能够被复用的原因仅仅是因为它的接口与专业应用领域所需要的接口不匹配。是因为它的接口与专业应用领域所需要的接口不匹配。8适配器模式 Adapter Pattern 类图:类图:9桥接模式 Bridge Pattern 意图:意图:将抽象部分与它的实现部分分离,使它们都可以独立地变将抽象部分与它的实现部分分离,使它们都可以独立地变化。化。动机:动机:当一个抽象可能有多个实现时,通常用继承来协调它们。当一个抽象可能有多个实现时,通常用继承来协调它们。抽象类定义对该抽象的接口,而具体的子类则用不同方式抽象类定义对该抽象的接口,而具体的子类则用不同方式加以实现。但是此方法有时不够灵活。继承机制将抽象部加以实现。但是此方法有时不够灵活。继承机制将抽象部分与它的实现部分固定在一起,使得难以对抽象部分和实分与它的实现部分固定在一起,使得难以对抽象部分和实现部分独立地进行修改、扩充和重用。现部分独立地进行修改、扩充和重用。10桥接模式 Bridge Pattern 类图:类图:11装饰模式 Decorator Pattern意图:意图:动态地给一个对象添加一些额外的职责。就扩展功能而言,动态地给一个对象添加一些额外的职责。就扩展功能而言,它比生成子类方式更为灵活。它比生成子类方式更为灵活。动机:动机:当不能采用生成子类的方法进行扩充时。一种情况是,可当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。类定义被隐藏,或类定义不能用于生成子类。12装饰模式 Decorator Pattern 类图:类图:13结束语u2323种设计模式也不是万能的,更不能说是可以解决任何问题的,能不种设计模式也不是万能的,更不能说是可以解决任何问题的,能不能适用,关键看你对这些设计模式的理解,另外还有看你程序本身的能适用,关键看你对这些设计模式的理解,另外还有看你程序本身的需要,滥用设计模式也会造成过度设计,反而得不偿失。就象古人用需要,滥用设计模式也会造成过度设计,反而得不偿失。就象古人用兵,不是熟读兵书就可以百战不殆,呵呵。兵,不是熟读兵书就可以百战不殆,呵呵。u任何事情都没有绝对,掌握理论或者方法不难,难就难在怎么与现实任何事情都没有绝对,掌握理论或者方法不难,难就难在怎么与现实取得恰到好处的平衡,取得恰到好处的平衡,“过度设计过度设计”的现象其实也不少见,至少是局的现象其实也不少见,至少是局部的部的“过度过度”。u设计模式就是前人对程序架构的经验总结,是针对当时的需求,当时设计模式就是前人对程序架构的经验总结,是针对当时的需求,当时市场环境。需求在变,市场也在变。要以不变应不变,以变应变,随市场环境。需求在变,市场也在变。要以不变应不变,以变应变,随机应变。机应变。u计划赶不上变化,是计划本身的问题。好的计划应该考虑变化,包括计划赶不上变化,是计划本身的问题。好的计划应该考虑变化,包括变化的处理。变化的处理。14分享出色的程序员就像杰出的钢琴家,娴熟的双手,出色的程序员就像杰出的钢琴家,娴熟的双手,在键盘上翩翩起舞,弹奏出一首首改变世界的美在键盘上翩翩起舞,弹奏出一首首改变世界的美丽动人的音乐。丽动人的音乐。15谢谢谢谢!谢谢!ThanksThanks!16
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!