面向对象设计的原则
面向对象方法中的五大原则:
- 单一责任原则:就一个类而言,应该仅有一个引起它变化的原因。
- 开放-封闭原则:软件实体应该是可以扩展的,即开发的;但是不可修改的,即封闭的。(扩展开放、修改关闭)
- 里氏替换原则: 子类型必须能够替换掉他们的基类型。(基类出现的地方,子类一定可以出现)
- 依赖倒置原则:抽象不应该依赖于细节,细节应该依赖于抽象。(依赖于抽象,而不依赖于细节[实现])
- 接口分离原则:不应该强迫客户依赖于它们不用的方法。(依赖于抽象,不依赖于具体)
共同封闭原则:包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响。
共同重用原则:一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。
1.面向对象分析
面向对象分析是为了获得对应用问题的理解,其主要任务是抽取和整理用户需求并建立问题域精确模型。
- 认定对象
- 组织对象
- 描述对象间的相互作用
- 确定对象的操作
- 定义对象的内部信息。
2.面向对象设计
面向对象设计是采用协作的对象、对象的属性和方法说明软件解决方案的一种方式,强调的是定义软件对象和这些软件对象如何协作来满足需求,延续了面向对象分析。
- 识别类及对象
- 定义属性
- 定义服务
- 识别关系
- 识别包
3.面向对象程序设计
面向对象程序设计的实质:选用一种面向对象程序设计语言(OOPL):
- 采用对象、类及其相关概念所进行的程序设计;
- 关键在于加入了类和继承性,从而进一步提高了抽象程度。
特定的OOP概念一般是通过OOPL中特定的语言机制来体现的。
OOP现在已经扩展到系统分析和软件设计的范畴,出现了面向对象分析和面向对象设计的概念。
4.面向对象测试
面向对象测试是根据规范说明来验证系统设计的正确性。
- 算法层:测试类中定义的每个方法,基本上相当于传统软件测试中的单元测试。
- 类层:测试封装在同一个类中的所有方法与属性之间的相互作用。在面向对象软件中类是基本模块,因此可以认为这是面向对象测试中所特有的模块测试。
- 模板层:测试一组协同工作的类之间的相互作用,大体上相当于传统软件测试中的集成测试,但是也有面向对象软件的特点(例如,对象之间通过发送消息相互作用)。
- 系统层:把各个子系统组装成完整的面向对象软件系统,在组装过程中同时进行测试。