版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象设计原则A. 面向对象设计七大原则a) 开闭原则Ø 软件实体对扩展开发,对修改关闭。Ø 当软件系统面对着新的需求的时候,系统的设计是稳定的。Ø 满足“开-闭”原则系统的优点:1. 通过扩展已有的模块,提供新的行为,满足新需求,使得变化中的软件系统有一定的适应性和灵活性2. 已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使得变化中的模块有一定的稳定性和延续性.Ø 怎样才能做到开闭原则?1. 抽象化,为系统定义一个不再更改的抽象设计,这个设计预见 了所有可能的变化。满足了开闭原则的“闭”2. 找到系统中变化的部分,把可变性封装起来。使用继承
2、或者其他方式来封装变化,将变化封装在一个方法中或者一个类中。b) “里氏转换”原则(LSP)Ø 定义:如果一个软件实体使用一个基类的话,那么一定适合于它的子类。也就是基类出现的地方,子类一定可以出现,替换后软件行为不会发生变化, 而且它根本不能识别出基类和子类对象的区别。Ø 里氏转换原则是对开-闭原则的补充。违反了里氏原则,有就违反了开闭原则;反之不成立。Ø 里氏转换原则是继承复用的基础.只有当衍生类可以替换掉基类,软件功能不会受到影响的时候,基类才能被真正复用,而衍生类才能在基类的基础 上增加新的行为。Ø 理氏转换原则是代理模式成立的基础.代理模式和真
3、实主题模式都是抽象主题角色的子类。客户端只知道抽象主题,而代理主题可以替代抽象主题出现在任何地方c) “依赖倒转”原则Ø 抽象不应该依赖于细节, 细节应该依赖于抽象.Ø (高层模块不应该依赖于底层模块,两个都依赖于抽象)Ø 通俗地说:面向接口编程, 不要对实现编程.d) “接口隔离”原则Ø 使用专门的接口比使用一个总的接口好;一个类对另外一个类的依赖性应当建立在最小的接口上的.Ø 接口理解成角色,一个接口就只是代表一个角色,每个角色都有它特定的一个接口,这里的这个原则可以叫做"角色隔离原则".Ø OOD设计的时候,
4、准确的划分角色以及角色对应的接口。将没有关系的接口合并在一起,就会对接口和角色构成污染。e) “组合/聚合复用”原则Ø 要尽量使用合成/聚合达到复用, 尽量少用继承。Ø 将一个已经有的对象纳入新对象中,使之成为新对象的一部分, 新对象可以调用引入的旧对象的方法和功能.Ø 优势:1. 新对象存取成分对象的唯一方法是通过成分对象的接口。2. 这种对象的复用是黑箱复用,因为成分对象的内部实现细节对于新的对象是看不见的。3. 这种复用支持包装。4. 新对象可以在运行的时候动态的引用于成分对象类型相同的对象。f) “组合/聚合复用”原则Ø 继承复用的优势:1. 新
5、的实现较为容易,因为超类的大部分功能可以通过继承关系自动进入子类。2. 修改或者扩展继承而来的实现比较容易。Ø 继承复用的缺点:1. 继承复用破坏包装。将超类的实现细节暴露给子类。超类的内部细节常常对子类是透明的,白箱复用。2. 超类的实现发生了改变,子类的实现也不得不改变3. 超类继承而来的是静态的,不可能在运行时间内发生改变。因此没有足够的灵活性。g) “迪米特”原则Ø 又叫最少知识原则;Ø 一个对象应当对其他对象有尽可能少的了解。Ø 只与你的朋友们通信,不要和陌生人说话;Ø 不相往来: 将被统治的对象隔离开来,使它们没有直接的通信,可以达
6、到分化瓦解,继而分而治之的效果Ø 迪米特法则能够减少耦合.类之间的耦合越小,越有利于复用。Ø “定制服务”设计原则,只向客户端提供客户端需要的方法,其他的不需要的不提供,这也是符合迪米特法则的。h) 单一职责原则Ø 就一个类而言,应该仅有一个引起他变化的原因。Ø 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计。当变化发生的时候,设计会遭受意想不到的破坏。Ø 对设计而言,就是发现职责并把这些职责分离。 B. 面向对象系统设计(OOD)a) OOD的步骤:Ø 细化重组类Ø 细化和实现类之间的关系,明确其可见性.Ø 增加属性,指定属
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 芽苗菜工厂化种植技师考试试卷及答案
- 2026年吉林省图们市高二生物下册期末考试考试卷附参考答案(夺分金卷)
- 2026年河北省辛集市高二生物下册期末考试模拟卷附完整答案(必刷)
- 2026年吉林省珲春市高二生物下册期末考试模拟卷附参考答案(典型题)
- 2026年河南省登封市高二生物下册期末考试测试卷及参考答案(达标题)
- 2026年云南省安宁市高二生物下册期末考试模拟卷及参考答案【B卷】
- 2025年山东省即墨市高二生物下册期末考试考试卷附答案(考试直接用)
- 2026年海南省五指山市高二生物下册期末考试试卷(全优)附答案
- 2025年浙江省临安市高二生物下册期末考试考试卷附完整答案【各地真题】
- 2026年安徽省天长市高二生物下册期末考试检测卷及参考答案1套
- 2026云南黄金矿业集团股份有限公司第一次招聘工作人员13人备考题库及一套参考答案详解
- 2026年传染病培训试题(+答案)
- 华南理工大学2026年强基计划面试模拟试题及答案解析
- 2026广东众源投资有限公司校园招聘考试参考试题及答案解析
- 2026年安全生产月知识竞赛试题(7套完整版 含答案)
- 杭州白马湖生态创意城投资开发有限公司笔试试题
- 2025年公安院校联考笔试真题及答案解析
- 2026年继续教育公需课必修课考试题及答案
- 招商银行长沙分行2026秋招数据分析岗笔试题
- 2026数字孪生环境监测:技术创新与生态保护实践
- 橙色简约风建筑工地安全教育培训模板
评论
0/150
提交评论