软考-软件设计师:面向对象基础 作者:马育民 • 2025-04-21 09:10 • 阅读:10001 # 类的分类 类似:MVC - 实体类:该类对象表示现实世界中真实的实体,如人、物等 - 接口类(边界类):该类对象为用户提供一种与系统合作 **交互的方式**,分为人和系统两大类: - 人的接口:可以是显示屏、窗口、Web 窗体、对话框、菜单、列表框、其他显示控制、条形码、二维码或者用户与系统交互的其他方法。 - 系统接口:把数据发送到其他系统,或者从其他系统接收数据。 - 控制类:该类对象用来 **控制活动流**,充当协调者。 # 面向对象开发流程 [](https://www.malaoshi.top/upload/0/0/1GWz5CPBOFD.png) ### 面向对象分析 目的:确定系统的功能、性能要求 - 认定对象:按自然存在的实体确立对象。将自然存在的 `名词` 作为一个对象 - 组织对象:将对象抽象成类,建立具有继承的类结构。 - 对象间的作用:对象的关系,如一个对象是另一个对象的一部分,一个对象与其他对象间的通信关系等。 - 对象操作:如创建、增加和删除等 ### 面向对象设计 面向对象设计(Object-Oriented Design,OOD)是将 OOA 所创建的分析模型转化为设计模型,其目标是定义系统构造蓝图 ##### 面向对象的设计活动 - 识别类及对象。 - 定义属性。 - 定义服务。 - 识别关系。 - 识别包。 ##### 面向对象的设计原则 - 单一职责原则:功能单一的类 - 开放-封闭原则:对扩展开放,对修改封闭 - 里氏(Liskov)替换原则:子类可以替换父类 - 依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程 - 接口隔离原则:使用多个专门的接口,比使用单一的总接口要好 - 组合重用原则:要尽量使用 组合/聚合,而不是使用继承 - 迪米特(Demeter)原则(最少知识法则):一个类对其他类的了解尽可能少 ##### obertC.Martin 提出的面向对象设计原则 包括: - 重用发布等价原则:重用的粒度就是发布的粒度。 - **共同封闭原则**:包中的所有类对于同一性质的变化应该是共同封闭的。**一个变化若对一个包产生影响,则将对该包里的所有类产生影响,而对于其他的包不造成任何影响**。 [](https://www.malaoshi.top/upload/0/0/1GWzADTPFg2.png) - **共同重用原则**:一个包里的所有类应该是共同重用的。**如果重用了包里的一个类,那么就要重用包中的所有类。** [](https://www.malaoshi.top/upload/0/0/1GWzAEDC2x9.png) - **无环依赖原则**:在包的依赖关系图中不允许存在环,即包之间的结构必须是一个直接的无环图形。 - 稳定抽象原则:包的抽象程度应该和其稳定程度一致。 - 稳定依赖原则:朝着稳定的方向进行依赖。 ### 面向对象程序设计 > 357页 ### 面向对象测试 尽可能低的测试成本和尽可能少的测试用例,发现尽可能多的错误 分为下列4个层次进行: - 算法层。测试每个方法,相当于 **单元测试** - 类层。测试方法与属性之间的相互作用(模块测试) - 模板层。测试类之间的相互作用,相当于传统软件测试中的 **集成测试** - 系统层。把各个子系统组装成完整的面向对象软件系统,在组装过程中同时进行测试。 软件工程中传统的测试用例设计技术,如逻辑覆盖、等价类划分和边界值分析等方法,仍然可以作为测试类中每个方法的主要技术。 # 题 面向对象分析的目的是为了获得对应用问题的理解,其主要活动不 包括() A、认定并组织对象 B、描述对象间的相互作用 C、面向对象程序设计 D、确定基于对象的操作 ### 答案 B # 题 进行面向对象设计时,就一个类而言,应该仅有一个引起它变化的 原因,这属于()设计原则。 A、单一责任 B、开放-封闭 C、接口分离 D、里氏替换 ### 答案 A # 题 进行面向对象系统设计时,针对包中的所有类对于同一类性质的变化;一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响。这属于()设计原则。 A、共同重用 B、开放-封闭 C、接口分离 D、共同封闭 ### 答案 D 原文出处:http://malaoshi.top/show_1GWz51i6CxQ.html