- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计原则以及设计模式
内容 设计模式 面向对象设计原则 设计模式 Design Pattern 面向对象研究的新领域 20世纪90年代,面向对象方法与技术在国内软件业界十分火爆,人们热衷于谈论“对象”并引以为荣。十多年来,人们发表、出版了无数的文章和书籍。现在,该写的似乎都写完了,没有新花样玩了,真是一片无聊 设计模式(Design Pattern)及时问世,面向对象爱好者们终于有了新的追求 设计模式:起源 起源 Christopher Alexander 当代著名建筑大师 加州大学伯克利分校建筑学教授、环境结构研究所所长、美国艺术与科学院院士 在建筑、室内、计算机、家具设计甚至哲学方面都卓有建树 著作:《A Pattern Language》、《The Timeless Way of Building》 设计模式:起源 Gof (Gang Of Four,“四人帮”) Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 1995年出版了《Design Patterns: Elements of Reusable Object-Oriented Software》 该书确立了设计模式这个术语,创导了一种新的面向对象设计思潮。从此,参与设计模式研究的人数爆炸性地增长 设计模式:起源 设计模式 什么叫模式? “每一个模式描述了在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该解决方案而不必重复劳动” 尽管软件技术发展非常快,但是仍然有非常多的设计模式可以让我们套用 设计模式可以帮助人们简便地复用以前成功的设计方案,提高工作效率 模式的分类(gof提出的23个) Bridge(桥梁)模式 案例 有一个叫做HuntBird的游戏,里面需要表示各种各样的鸟类 Bridge(桥梁)模式 最初的设计 Bridge(桥梁)模式 需求变化:鸟类要会飞 Bridge(桥梁)模式 如果增加一种鸟类“企鹅”呢? Bridge(桥梁)模式 改进方法:对“飞”使用多态 Bridge(桥梁)模式 改进方法:再次使用继承 Bridge(桥梁)模式 如果增加“游泳”行为呢? Bridge(桥梁)模式 继承只会使得问题越来越复杂 继承是面向对象的基本法宝啊?? OO=类+对象+继承+消息通信 设计原则:组合优先 继承复用的优点 可以很容易的修改或扩展父类的实现 设计原则:组合优先 继承复用的缺点 继承破坏封装,因为父类的实现细节完全暴露给子类(白盒复用) 父类的实现发生改变,则子类必受牵连 继承是静态的,不能在运行时发生改变,不灵活 设计原则:组合优先 组合复用的优点 不破坏封装,这种复用是黑盒复用,因为成员对象的内部细节对新对象保密 所需依赖少(只依赖接口) 是动态的,可以把成员对象动态替换为另一个类型相同的对象 组合复用的缺点 对象数量会增加 使用委托(delegation)会使得系统复杂 设计原则:组合优先 组合优先 Favor composition over inheritance 当需要应对变化的时候,应该首先使用组合的方式,而不是继承 因为组合更加灵活 例1: 汽车有很多种,小轿车、货车、客车,有的车是客货两用,有的车水陆两用 设计原则:组合优先 如果使用继承来描述: 一旦增加新的汽车种类或用途,都需要大量改动原有代码 设计原则:组合优先 使用“组合”思路考虑问题 “汽车”拥有某种或某些“用途” “汽车”和“用途”独立变化,互不影响 设计原则:组合优先 区分“Is-A”与“Has-A” 有一个系统需要描述经理、雇员和学生 它们都是人,所以: 设计原则:组合优先 问题 有些人既是经理,又是学生,比如某位在读MBA的老总 设计原则:组合优先 换一个角度看问题 雇员、经理、学生其实都是角色的一种 人拥有角色 Bridge(桥梁)模式 是什么导致设计的不完美? 变化,无法避免的、经常的需求变化 设计者的理想 当需求变化的时候,尽可能少的修改代码就可以满足新的需求 Bridge(桥梁)模式 “发现变化点” Bridge(桥梁)模式 “封装变化点” 变化点1:小鸟一家 Bridge(桥梁)模式 “封装变化点” 变化点2:鸟类的行为——飞 Bridge(桥梁)模式 “封装变化点” 变化点2:鸟类的行为——游泳 Bridge(桥梁)模式 “使变化点和不变点独立开来” 在这个例子里其实是两个变化点相独立 “鸟类”和“行为”什么关系? 鸟类拥有行为 鸟类行为的具体实现,委托“行为”类来完成 鸟儿拥有飞、游泳的行为 Bridge(桥梁)模式 使用桥梁模式的效果 比如增加一种鸟类“鹅”,相应的要增加一种游泳的行为“红掌拨清波” 只需要增加一个鸟类的子类“鹅” 增加一个游泳的行为“红掌拨
您可能关注的文档
最近下载
- 初中物理教学案例中的信息技术与学科整合论文.docx
- 立柱桩施工方案.docx VIP
- 碧桂园北湖项目营销策略提报 -房地产-2024-.pptx VIP
- [云南]2024年国家税务总局云南省税务局所属事业单位招聘30人 笔试历年典型考题及考点剖析附答案详解.doc
- 09J940 皮带运输机通廊建筑构造.pdf VIP
- BSI MDR Requirement 欧盟MDR要求培训课件.pdf VIP
- 13《精卫填海》课件(共32张PPT).pptx VIP
- 医疗机构药事管理规定(全文).docx VIP
- 职业卫生与职业医学简答题库(含答案).pdf VIP
- YS_T 582-2013电池级碳酸锂.pdf
原创力文档


文档评论(0)