面向对象设计的原则

面向对象设计的原则

面向对象方法中的五大原则:

  1. 单一责任原则:就一个类而言,应该仅有一个引起它变化的原因。
  2. 开放-封闭原则:软件实体应该是可以扩展的,即开发的;但是不可修改的,即封闭的。(扩展开放、修改关闭)
  3. 里氏替换原则: 子类型必须能够替换掉他们的基类型。(基类出现的地方,子类一定可以出现)
  4. 依赖倒置原则:抽象不应该依赖于细节,细节应该依赖于抽象。(依赖于抽象,而不依赖于细节[实现])
  5. 接口分离原则:不应该强迫客户依赖于它们不用的方法。(依赖于抽象,不依赖于具体)

共同封闭原则:包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响

共同重用原则:一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类

1.面向对象分析

面向对象分析是为了获得对应用问题的理解,其主要任务是抽取和整理用户需求并建立问题域精确模型。

  1. 认定对象
  2. 组织对象
  3. 描述对象间的相互作用
  4. 确定对象的操作
  5. 定义对象的内部信息。

2.面向对象设计

面向对象设计是采用协作的对象、对象的属性和方法说明软件解决方案的一种方式,强调的是定义软件对象和这些软件对象如何协作来满足需求,延续了面向对象分析。

  1. 识别类及对象
  2. 定义属性
  3. 定义服务
  4. 识别关系
  5. 识别包

3.面向对象程序设计

面向对象程序设计的实质:选用一种面向对象程序设计语言OOPL):

  • 采用对象、类及其相关概念所进行的程序设计;
  • 关键在于加入了类和继承性,从而进一步提高了抽象程度。

特定的OOP概念一般是通过OOPL中特定的语言机制来体现的。

OOP现在已经扩展到系统分析和软件设计的范畴,出现了面向对象分析和面向对象设计的概念。

4.面向对象测试

面向对象测试是根据规范说明来验证系统设计的正确性。

  1. 算法层:测试类中定义的每个方法,基本上相当于传统软件测试中的单元测试。
  2. 类层:测试封装在同一个类中的所有方法与属性之间的相互作用。在面向对象软件中类是基本模块,因此可以认为这是面向对象测试中所特有的模块测试。
  3. 模板层:测试一组协同工作的类之间的相互作用,大体上相当于传统软件测试中的集成测试,但是也有面向对象软件的特点(例如,对象之间通过发送消息相互作用)。
  4. 系统层:把各个子系统组装成完整的面向对象软件系统,在组装过程中同时进行测试。
Licensed under CC BY-NC-SA 4.0
Document