第十章:面向对象
考点1:基础知识(★★★★★)
- 概念
- 对象:属性(数据)+方法(行为)+对象ID
- 类:对象的集合
- 实体类:现实世界中存在的实体,如人,物等
- 边界类(接口):未用户提供一种与系统合作交互的方式,如显示屏、窗口、对话框、条形码、二维码等
- 控制类:控制活动流,充当协调者
- 接口:只有方法定义没有实现
- 三大特征
- 封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式,提高安全性。
- 继承:提高代码复用性,是实现多态的前提。
- 多态:父类或接口定义的引用变量指向子类或具体实现类的实例对象,提高了代码的拓展性。
- 静态绑定:在编译时,把过程调用和响应调用所需要执行的代码加以结合
- 动态绑定:在运行时,把过程调用和响应调用所需要执行的代码加以结合
- 设计原则
- 单一职责原则SRP:类的功能要单一。
- 开放封闭原则OCP:扩展开放,修改关闭。
- 里式替换原则LSP:子类可以替换父类出现在父类能够出现的任何地方。
- 依赖倒置原则DIP:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程
- 接口分离原则ISP:使用多个专门的接口比使用单一的总接口要好
- 组合重用原则:要尽量使用组合,而不是继承关系达到重用目的
- 迪米特原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解
- 面向对象开发过程
- 面向对象分析:获得对应问题的解决,抽取和整理用户需求并建立问题域精确模型
- 认定对象:按自然存在的实体确立对象。一般“名词”作为对象
- 组织对象:分析对象间的关系,将相关对象抽象成类,利用类的继承性建立具有继承性的层次的类结构
- 描述对象间的相互作用:描述对象在应用系统中的关系。
- 面向对象设计:采用协作的对象、对象的属性和方法解决软件问题的方案
- 面向对象实现:采用面向对象程序设计语言实现系统
- 面向对象测试:根据规范说明来验证系统设计的正确性
- 面向对象分析:获得对应问题的解决,抽取和整理用户需求并建立问题域精确模型
考点2:UML(★★★★★)
-
UML图分类
-
用例图:描述系统和外部的交互关系。小人表示参与者,圆圈表示用例,实线空箭头表示泛化关系,虚线普通箭头<>表示扩展关系,虚线普通箭头<>表示包含关系
-
类图:描述类、接口及协作之间的关系,用于系统的静态实现视图建模。箭头上可表示关系和角色,方框表示实体
-
依赖:一个类A使用到了另一个类B(作为类A的方法的参数)
-
关联:类B作为成员变量形成存在于类A中
-
聚合:整体与部分生命周期不同
-
组合:整体与部分生命周期相同
-
泛化:一个类与它的一个或多个细化类之间的关系
-
-
序列图:对象间消息的传递按时间顺序。对象名标有下划线,生命线为虚线,控制焦点用薄矩形表示,消息为箭头
-
同步消息:进行阻止调用,调用着终止执行,使用实心三角实线表示
-
异步消息:调用着发出消息后继续执行,不引起调用着阻塞,使用普通箭头实线表示
-
返回消息:使用普通箭头虚线表示
-
-
活动图:用于系统的动态视图建模,通常在建模用例图之后,对复杂用例进行进一步细化。黑色粗线条的数量表示能运行的最大线程数,在此区间的活动可以同时进行
-
状态图:描述对象、子系统、系统的生命周期。圆圈代表状态,箭头表示监护条件
-
通信图:表示对象和对象之间的调用关系。“:”表示对象,前面是对象名,后面是类名
-
组件图:描述组件之间的组织和依赖,用于系统的静态实现视图,与类图相关,通常把组件映射为一个或多个类、接口和协作
-
部署图:软件的构件应该部署在哪个硬件的节点上,用于系统的静态实施视图
考点3:设计模式(★★★★★)
-
设计模式分类
-
创建型模式
-
结构型模式
-
行为型模式
视频来源 软件设计师
如需软考设计师笔记的,私聊或评论