MINIBLOG

Blog Note Tags Links About
Home Search
Jun 25, 2026
miniyuan

面向对象技术总结


OOA

  1. 需求模型
  2. 基本模型
  3. 辅助模型
  4. 模型规约

类图

系统参与者:人员、设备、外系统

注:参与者、执行者、操作者均指 Actor

静态图:类图、对象图、构件图、包图、部署图、外扩图、组合结构图

动态图:用况图、状态机图、活动图、顺序图、通信图、交互概观图、定时图

类图的步骤:

  1. 概念(词汇)建模:
    • 考虑系统边界
    • 考虑问题域和系统责任
    • 审查与筛选
    • 识别主动对象
    • 对象分类,建立类
  2. 内部特征(属性、操作)建模
    • 表示普通关联关系的属性,使用指向另一端对象的指针或对象标识为数据类型
    • 表示聚合关系的属性,使用部分对象类与整体对象类为数据类型
    • 表示组合关系的属性,使用部分对象类为数据类型
    • 区分类属性、实例属性,类操作、实例操作
  3. 外部关系建模
    • 识别泛化(继承)关系
    • 识别关联、聚合、组合关系,必要时附加关联类
    • 识别依赖关系
    • 识别实现关系
  4. 协作建模
  5. 数据库建模

问题域:被开发系统的应用领域

系统责任:所开发系统应具备的职能

OOA 的基本任务:

运用面向对象方法,对问题域和系统责任进行分析和理解,对其中的事物和它们之间的关系产生正确的认识,找出描述问题域和系统责任所需的类和对象,定义这些类和对象的属性和操作,以及它们之间所形成的各种关系。 最终目的是产生一个符合用户需求,并能够直接反映问题域和系统责任的 OOA 模型及其规约。

OOA 模型应独立于实现环境。与实现条件有关的问题都推迟到 OOD 考虑。

如果一个交互是由系统外的参与者发起的,第一个处理该交互的对象是主动对象

顺序图

顺序图是系统行为(交互)的建模工具。顺序图强调对象间的控制流。

元素:对象(参与者)、消息、生命线和执行规约

通信图

通信图与顺序图语义等价,可相互转换。

活动图

活动图是描述操作步骤的建模工具。活动图强调的是活动间的控制流。

注:活动可能由不同类中的不同操作实现。

状态机图

状态机图是系统行为(生存周期)的一种建模工具。

注:状态图的节点指明对象处于什么状态,活动图的节点指明系统接下来要执行什么步骤。

OOD

OOA 主要针对问题域,识别有关的对象以及它们之间的关系,产生一个映射问题域,满足用户需求,独立于实现的 OOA 模型。

OOD 主要解决与实现有关的问题,基于 OOA 模型,针对具体的软、硬件条件(如机器、网络、OS、GUI、DBMS等)产生一个可实现的 OOD 模型。

问题域部分

实现条件对问题域部分的影响:

  1. 编程语言
  2. 硬件、操作系统及网络设施
  3. 复用支持
  4. 数据管理系统
  5. 界面支持系统

如何进行问题域部分的设计:

  1. 复用类
  2. 增加一般类
  3. 调整继承与多态
  4. 提高性能
  5. 实现永久存储
  6. 增加底层细节
  7. 对复杂关联的转化
  8. 调整与完善属性
  9. 构造和优化算法
  10. 决定对象间的可访问性
  11. 定义对象实例
  12. 其他

人机交互部分

需求分析:

  1. 分析与系统交互的人
  2. 从 use case 分析人机交互

控制驱动部分

控制流间的通信机制:

  1. 操作调用
  2. 邮箱
  3. 共享存储器
  4. 远程过程调用

数据管理部分

选择关系型数据库来存放对象

构件及部署部分

构件图

OOP

纯面向对象语言:Smalltalk, Eiffel, Java

混合型面向对象语言:C++, Objective-C, Object Pascal, Python

设计模式

  1. 外观模式,Facade
  2. 桥接模式
  3. 单例模式,Singleton,线程池、数据库连接池、日志对象、全局计数器
  4. 备忘录模式
  5. 策略模式
  6. 工厂方法模式
  7. 抽象工厂模式
  8. 代理模式
  9. 迭代器模式
  10. 访问者模式
  11. 观察者模式
  12. 命令模式
  13. 模版方法模式
  14. 空对象
  15. mixin 模式
  16. 适配器模式
  17. 依赖注入模式

编码

  1. 命名
  2. 注释
  3. 视觉组织
  4. 语句构造
  5. 输入输出风格
  6. 魔数
目录
  • OOA
  • 类图
  • 顺序图
  • 通信图
  • 活动图
  • 状态机图
  • OOD
  • 问题域部分
  • 人机交互部分
  • 控制驱动部分
  • 数据管理部分
  • 构件及部署部分
  • OOP
  • 设计模式
  • 编码
目录
  • OOA
  • 类图
  • 顺序图
  • 通信图
  • 活动图
  • 状态机图
  • OOD
  • 问题域部分
  • 人机交互部分
  • 控制驱动部分
  • 数据管理部分
  • 构件及部署部分
  • OOP
  • 设计模式
  • 编码
© 2026 miniyuan. All rights reserved.
Go to miniyuan's GitHub repo