面向对象设计七大原则-步骤资料 下载本文

内容发布更新时间 : 2024/7/8 11:34:12星期一 下面是文章的全部内容请认真阅读。

面向对象设计原则

A. 面向对象设计七大原则

a) 开闭原则 ? 软件实体对扩展开发,对修改关闭。

? 当软件系统面对着新的需求的时候,系统的设计是稳定的。 ? 满足“开-闭”原则系统的优点:

1. 通过扩展已有的模块,提供新的行为,满足新需求,使得变化中的软件系统有一定的适应性和灵活性

2. 已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使得变化中的模块有一定的稳定性和延续性. ? 怎样才能做到开闭原则?

1. 抽象化,为系统定义一个不再更改的抽象设计,这个设计预见 了所有可能的变化。满足了开闭原则的“闭”

2. 找到系统中变化的部分,把可变性封装起来。使用继承或者其他方式来封装变化,将变化封装在一个方法中或者一个类中。 b) “里氏转换”原则(LSP)

? 定义:如果一个软件实体使用一个基类的话,那么一定适合于它的子类。也就是基类出现的地方,子类一定可以出现,替换后软件行为不会发生变化, 而且它根本不能识别出基类和子类对象的区别。 ? 里氏转换原则是对开-闭原则的补充。违反了里氏原则,有就违反了开闭原则;反之不成立。

? 里氏转换原则是继承复用的基础.只有当衍生类可以替换掉基类,软件功能不会受到影响的时候,基类才能被真正复用,而衍生类才能在基类的基础 上增加新的行为。

? 理氏转换原则是代理模式成立的基础.代理模式和真实主题模式都是抽象主题角色的子类。客户端只知道抽象主题,而代理主题可以替代抽象主题出现在任何地方 c) “依赖倒转”原则

? 抽象不应该依赖于细节, 细节应该依赖于抽象. ? (高层模块不应该依赖于底层模块,两个都依赖于抽象) ? 通俗地说:面向接口编程, 不要对实现编程. d) “接口隔离”原则

? 使用专门的接口比使用一个总的接口好;一个类对另外一个类的依赖性应当建立在最小的接口上的.

? 接口理解成角色,一个接口就只是代表一个角色,每个角色都有它特定的一个接口,这里的这个原则可以叫做\角色隔离原则\ ? OOD设计的时候,准确的划分角色以及角色对应的接口。将没有关系的接口合并在一起,就会对接口和角色构成污染。 e) “组合/聚合复用”原则

? 要尽量使用合成/聚合达到复用, 尽量少用继承。

? 将一个已经有的对象纳入新对象中,使之成为新对象的一部分, 新对象可以调用引入的旧对象的方法和功能. ? 优势:

1. 新对象存取成分对象的唯一方法是通过成分对象的接口。 2. 这种对象的复用是黑箱复用,因为成分对象的内部实现细节对于新的对象是看不见的。 3. 这种复用支持包装。

4. 新对象可以在运行的时候动态的引用于成分对象类型相同的对象。

f) “组合/聚合复用”原则 ? 继承复用的优势: