付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象设计原则 A.面向对象设计七大原则 a)开闭原则 ?软件实体对扩展开发,对修改关闭。 ?当软件系统面对着新的需求的时候,系统的设计是稳定的。 ?满足 开-闭”原则系统的优点: 1. 通过扩展已有的模块,提供新的行为,满足新需求,使得变化中的 软件系统有一定的适应性和灵活性 2. 已有的软件模块,特别是最重要的抽象层模块不能再修改,这就 使得变化中的模块有一定的稳定性和延续性. ?怎样才能做到开闭原则? 1. 抽象化,为系统定义一个不再更改的抽象设计,这个设计预见了 所有可能的变化。满足了开闭原则的闭” 2. 找到系统中变化的部分,把可变性封装起来。使用继承或者其他 方式来封装变化,将变
2、化封装在一个方法中或者一个类中。 b)里氏转换”原则(LSP) ?定义:如果一个软件实体使用一个基类的话,那么一定适合于它 的子类。也就是基类出现的地方,子类一定可以出现 ,替换后软件行 为不会发生变化,而且它根本不能识别出基类和子类对象的区别。 ?里氏转换原则是对开-闭原则的补充。违反了里氏原则,有就违反 了开闭原则;反之不成立。 ?里氏转换原则是继承复用的基础只有当衍生类可以替换掉基类, 软件功能不会受到影响的时候,基类才能被真正复用,而衍生类才能 在基类的基础上增加新的行为。 ?理氏转换原则是代理模式成立的基础代理模式和真实主题模式 都是抽象主题角色的子类。客户端只知道抽象主题,而代理主
3、题可以 替代抽象主题出现在任何地方 C)依赖倒转”原则 ?抽象不应该依赖于细节,细节应该依赖于抽象. ?(高层模块不应该依赖于底层模块,两个都依赖于抽象 ) ?通俗地说:面向接口编程,不要对实现编程. d)接口隔离”原则 ?使用专门的接口比使用一个总的接口好;一个类对另外一个类的 依赖性应当建立在最小的接口上的. ?接口理解成角色,一个接口就只是代表一个角色,每个角色都有它 特定的一个接口,这里的这个原则可以叫做角色隔离原则. ? 00D设计的时候,准确的划分角色以及角色对应的接口。将没有 关系的接口合并在一起,就会对接口和角色构成污染。 e)组合/聚合复用”原则 ?要尽量使用合成/聚合达到复
4、用,尽量少用继承。 ?将一个已经有的对象纳入新对象中,使之成为新对象的一部分,新 对象可以调用引入的旧对象的方法和功能. ?优势: 1. 新对象存取成分对象的唯一方法是通过成分对象的接口。 2. 这种对象的复用是黑箱复用,因为成分对象的内部实现细节对于 新的对象是看不见的。 3. 这种复用支持包装。 4. 新对象可以在运行的时候动态的引用于成分对象类型相同的对 象。 f)组合/聚合复用”原则 ?继承复用的优势: 1. 新的实现较为容易,因为超类的大部分功能可以通过继承关系自 动进入子类。 2修改或者扩展继承而来的实现比较容易。 ?继承复用的缺点: 1. 继承复用破坏包装。将超类的实现细节暴露给
5、子类。超类的内部 细节常常对子类是透明的,白箱复用。 2. 超类的实现发生了改变,子类的实现也不得不改变 3. 超类继承而来的是静态的,不可能在运行时间内发生改变。因此 没有足够的灵活性。 g)迪米特”原则 ?又叫最少知识原则; ? 一个对象应当对其他对象有尽可能少的了解。 ?只与你的朋友们通信,不要和陌生人说话; ?不相往来:将被统治的对象隔离开来,使它们没有直接的通信, 可以达到分化瓦解,继而分而治之的效果 ?迪米特法则能够减少耦合.类之间的耦合越小,越有利于复用。 ?定制服务”设计原则,只向客户端提供客户端需要的方法,其他的 不需要的不提供,这也是符合迪米特法则的。 h)单一职责原则 ?就一个类而言,应该仅有一个引起他变化的原因。 ?如果一个类承担的职责过多,就等于把这些职责耦合在一起,一 个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种 耦合会导致脆弱的设计。当变化发生的时候,设计会遭受意想不到的 破坏。 ?对设计而言,就是发现职责并把这些职责分离。 B.面向对象系统设计(00D) a) OOD的步骤: ?细化重组类 ?细化和实现类之间的关系,明确其可见
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论