目录
[2, UML 核心图分类](#2, UML 核心图分类)
一,uml建模
1,基础概念
(1)uml包括
- 构造块
- 规则
- 通用关系
(2)构造块包括
- 事务
- 关系
- 图
(3)事务包括
- 结构事务(静态,概念和物理元素)
- 行为事务(时间和空间)
- 分组事务(组织架构,文件夹)
- 注释事务
2, UML 核心图分类
| 图类型 | 所属分类 | 核心用途 | 关键知识点 |
|---|---|---|---|
| 用例图 | 行为型 | 描述系统功能需求,参与者与用例的交互 | 识别参与者、用例;用例间关系(包含、扩展、泛化)的区别 |
| 类图 | 结构型 | 描述系统中类、接口及其关系 | 类间关系辨析;类的属性 / 方法可见性 |
| 时序图(序列图) | 行为型 | 描述对象间的交互时序,按时间顺序排列消息 | 消息类型(同步 / 异步 / 返回);对象生命线、激活期;循环 / 分支表示 |
| 活动图 | 行为型 | 描述业务流程、算法逻辑、控制流 | 起始 / 终止节点、分支节点、合并节点、泳道(划分职责) |
| 状态图 | 行为型 | 描述对象的生命周期,状态间的转换 | 初态 / 终态、状态转换条件、事件驱动转换;区分状态图与活动图 |
3,关系
参与者之间的关系:泛化关系
参与者和用例之间:关联关系
用例之间:包含,扩展,泛化
| 关系类型 | 核心含义 | 图示 | 典型场景 |
|---|---|---|---|
| 依赖 | 临时的、弱的使用关系 | ----------->(虚线 + 箭头) | A 类的方法使用了 B 类对象作为参数 |
| 关联 | 长期的、稳定的引用关系 | ------------>(实线 + 箭头) | 学生与课程;员工与部门 |
| 聚合 | 整体 - 部分关系,部分可脱离整体存在 | ◇------------(空心菱形实线,菱形在整体) | 汽车和轮胎,班级和学生 |
| 组合 | 整体 - 部分关系,部分不能脱离整体存在 | ◆------------(实心菱形实线,菱形在整体) | 人体和心脏,树和树叶 |
| 泛化 | 继承关系,子类继承父类 | ------------△(实线 + 空心三角,指向父类) | 猫 / 狗继承动物类 |
| 实现 | 类实现接口,接口定义方法,类完成具体逻辑 | ------------△(虚线 + 空心三角,指向接口) | 实现 Runnable 接口、实现自定义接口 |
二,面向对象
1,三大核心特性
封装,继承,多肽
2,设计原则
| 原则名称 | 核心思想 | 目标 |
|---|---|---|
| 单一职责 (SRP) | 一个类只负责一项职责 | 降低类的复杂度,提高可读性和可维护性 |
| 开闭原则 (OCP) | 对扩展开放,对修改关闭 | 提高系统的可扩展性和灵活性 |
| 里氏替换 (LSP) | 子类可以替换父类 | 确保继承关系的正确性,增强程序的健壮性 |
| 接口隔离 (ISP) | 使用多个专用接口 | 降低系统耦合,提高内聚性 |
| 依赖倒置 (DIP) | 依赖抽象,不依赖具体 | 降低模块间耦合,提高系统稳定性 |
| 合成复用 (CRP) | 优先组合,其次继承 | 降低耦合,更灵活地复用代码 |
| 迪米特法则 (LOD) | 最少知道,最少依赖 | 降低类之间的耦合度 |
所有设计原则最终目标:提高内聚、降低耦合,符合开闭原则
三,设计模式
1,模式分类总览
- 创建型模式:解决对象创建问题,隐藏创建细节,提高灵活性。
- 结构型模式:解决类 / 对象的组合问题,通过组合实现新功能。
- 行为型模式:解决对象间的交互与职责分配问题。
2,创建型模式
| 模式 | 核心思想 | 关键考点 & 应用场景 |
|---|---|---|
| 单例模式 | 保证一个类仅有一个实例,并提供全局访问点 | 应用场景:配置类、连接池、日志类;实现方式:饿汉式(线程安全)、懒汉式(需双重检查锁) |
| 简单工厂(非标准模式) | 由一个工厂类根据参数创建不同产品对象 | 软考常考辨析,违反开闭原则,适合产品少且稳定的场景 |
| 工厂方法模式 | 定义创建对象的接口,让子类决定实例化哪个类 | 核心:一个工厂对应一个产品;遵循开闭原则,扩展产品只需新增工厂 |
| 抽象工厂模式 | 提供创建一系列相关 / 依赖对象的接口 | 核心:一个工厂对应一组产品族;适合多系列产品(如不同系统的控件) |
| 原型模式 | 通过克隆复制已有对象,快速创建新对象 | 场景:对象创建成本高、大量重复对象;分为浅克隆、深克隆 |
3,结构型模式
| 模式 | 核心思想 | 关键考点 & 应用场景 |
|---|---|---|
| 适配器模式 | 将一个类的接口转换成客户期望接口,解决接口不兼容 | 类适配器 (继承)、对象适配器 (组合);旧系统改造、第三方接口适配 |
| 装饰器模式 | 动态给对象添加额外功能,替代继承 | 同接口、包含被装饰对象;IO 流、权限 / 日志动态增强 |
| 代理模式 | 提供代理对象,控制对目标对象的访问 | 静态 / 动态代理;远程调用、图片懒加载、权限控制 |
| 桥接模式 | 抽象与实现分离,多维度独立变化 | 组合替代继承,解决类爆炸;品牌 + 设备、颜色 + 形状多维度 |
| 组合模式 | 树形结构组织整体与部分,统一对待单个 / 组合对象 | 场景:文件目录、菜单层级、组织机构 |
| 外观模式(门面) | 为复杂子系统提供统一入口,简化调用 | 场景:封装复杂接口、统一请求入口,降低调用复杂度 |
4,行为型模式
| 模式 | 核心思想 | 关键考点 & 应用场景 |
|---|---|---|
| 观察者模式 | 一对多依赖,目标变化自动通知所有订阅者 | 发布 - 订阅、消息推送、事件监听、前端数据响应 |
| 策略模式 | 封装一系列算法,算法可相互替换 | 消除大量 if-else;支付方式、优惠策略、排序算法切换 |
| 模板方法模式 | 父类定义算法骨架,子类实现可变步骤 | 固定流程、局部自定义;框架通用流程、业务统一规范 |
| 状态模式 | 根据对象内部状态改变自身行为 | 拆分状态类,消除分支判断;订单流转、设备状态管理 |
| 命令模式 | 将请求封装为对象,实现请求排队、撤销、日志 | 场景:按钮指令、操作撤销、批量任务 |
| 迭代器模式 | 统一遍历集合元素,不暴露内部结构 | 场景:各类集合遍历、统一数据读取方式 |
| 中介者模式 | 多对象通过中介通信,解除多对多耦合 | 场景:聊天室、多模块交互、复杂系统解耦 |
| 访问者模式 | 分离数据结构与数据操作,新增操作不改结构 | 软考低频;报表统计、数据统一操作 |
5,根据类图识别设计模式
-
先看大类:看类图的核心关系
- 有 "工厂、构建、原型" → 创建型
- 有 "继承 + 组合、包装、适配" → 结构型
- 有 "观察者、策略、命令" 这类交互关系 → 行为型
-
再找关键角色:抓最特殊的那个类
- 看到
Component+Leaf+Composite→ 组合模式 - 看到
Subject+Observer→ 观察者模式 - 看到
Proxy持有真实对象的引用 → 代理模式 - 看到
Builder+Director→ 建造者模式
- 看到
-
最后验证适用场景:和选项对应