软件设计师备考笔记【day2】-UML 图解 | 面向对象 | 设计模式

目录

一,uml建模

1,基础概念

[2, UML 核心图分类](#2, UML 核心图分类)

3,关系

二,面向对象

1,三大核心特性

2,设计原则

三,设计模式

1,模式分类总览

2,创建型模式

3,结构型模式

4,行为型模式

5,根据类图识别设计模式


一,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 → 建造者模式
  • 最后验证适用场景:和选项对应

相关推荐
南境十里·墨染春水2 小时前
C++笔记——STL map
开发语言·c++·笔记
其实防守也摸鱼2 小时前
网络安全与数据库运维核心知识点总结(附习题)
运维·网络·数据库·笔记·安全·web安全
我登哥MVP2 小时前
【SpringMVC笔记】 - 12 - 全注解开发
java·spring boot·笔记·spring·tomcat·intellij-idea
Aliex_git2 小时前
Nuxt 学习笔记(二)
前端·笔记·学习
南境十里·墨染春水2 小时前
C++笔记·-- STL unordered_map
开发语言·c++·笔记
三品吉他手会点灯2 小时前
C语言学习笔记 - 17.C编程预备计算机专业知识 - 数据类型
c语言·笔记·学习
噜噜噜阿鲁~2 小时前
python学习笔记 | 7.4、高级特性-生成器
笔记·python·学习
handler012 小时前
【Linux 笔记】GDB 调试速查手册
linux·运维·c语言·c++·笔记
九思十安2 小时前
HNU2026-算法设计与分析-笔记 3 摊还分析
笔记·算法