1.3 面向对象设计
返回目录 1 面向对象技术
上一节 1.2 面向对象分析
下一节 1.4 cpp编程基础
面向对象设计(Object-Oriented Design,OOD)是将OOA所创建的分析模型转化为设计模型,其目标是定义系统构造蓝图。在模型到执行环境的转换中,需要考虑实现问题加以调整和增补,通过编程语言特性等因素调整比如类结构等具体的结构。
OOD与OOA一致,同样应遵循抽象、信息隐蔽、功能独立、模块化等设计准则。
感觉理论比较枯燥的,可以直接跳转到1.4开始实际操作。
面向对象设计
-
面向对象设计的活动
-
OOD在复用OOA模型的基础上,包含与OOA对应如下五个活动:
- 识别类及对象;
- 定义属性;
- 定义服务;
- 识别关系;
- 识别包。
- 设计期必须充分考虑系统的稳定性,如目标环境所需的最大存储空间、可靠性和响应时间等,所有这些都会影响系统的结构;
- OOD应该尽可能隔离实现条件对系统的影响,对不可隔离的因素按实现条件调整OOA模型。
-
-
面向对象设计的原则
-
五大原则:
- 单一责任原则(Single Responsibility Principle,SRP);
- 开放-封闭原则(Open&Close Principle,OCP);
- 里氏替换原则(Liskov Substitution Principle,LSP);
- 依赖倒置原则(Dependence Inversion Principle,DIP);
- 接口分离原则(Interface Segregation Principle,ISP)。
-
其它原则
- 重用发布等价原则(Release Reuse Equivalency Principle,REP);
- 共同封闭原则(Common Closure Principle,CCP);
- 共同重用原则(Common Reuse Principle,CRP);
- 无环依赖原则(Acyclic Dependencies Principle,ADP);
- 稳定依赖原则(Stable Dependencies Principle,SDP);
- 稳定抽象原则(Stable Abstractions Principle,SAP)。
-
面向对象程序设计
面向对象程序设计(Object-Oriented Programming,OOP)的实质是选用一种面向对象程序设计语言(Object-Oriented Programming Language,OOPL)。OOP采用对象、类及其相关概念所进行的程序设计。它的关键在于加入了类和继承性,从而进一步提高了抽象程度。
特定的OOP概念一般是通过OOPL中特定的语言机制来体现的。
- 类
- 继承和类层次结构
- 对象、消息传递和方法
- 对象自身引用
- 重置
- 类属类
- 无实例的类
面向对象测试
在所有开发系统中都是根据规范说明来验证系统设计的正确性。程序验证应尽可能早地开始。程序调试步骤是从最底层开始,从单元测试、综合测试到系统测试。
- 单元测试是系统构件的分体测试;
- 综合测试即将测试好的系统构件接起来看它们之间相互作用的正确性;
- 系统测试是对整个系统的测试,包括软件系统所在相关环境的测试。
综合测试尽可能在早期阶段处理,因为通信是系统开发的实质。
一般来说,对面向对象软件的测试可分为下列4个层次进行:
-
算法层;
- 测试类中定义的每个方法,基本上相当于传统软件测试中的单元测试。
-
类层;
- 测试封装在同一个类中的所有方法与属性之间的相互作用;
- 在面向对象软件中类是基本模块,因此可以认为这是面向对象测试中所特有的模块测试。
-
模板层;
- 测试一组协同工作的类之间的相互作用,大体上相当于传统软件测试中的集成测试,但是也有面向对象软件的特点(例如,对象之间通过发送消息相互作用)。
-
系统层。
- 把各个子系统组装成完整的面向对象软件系统,在组装过程中同时进行测试。
返回目录 1 面向对象技术
上一节 1.2 面向对象分析
下一节 1.4 cpp编程基础
参考资料:
- 《软件设计师教程》第五版
- 百度百科
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。