软件设计师备考-(十二)面向对象设计(重要)

12.1 面向对象基本概念

12.2 面向对象设计-设计原则

12.3 UML

  • 图主要分为俩大阵营(1)结构图/静态图 【上图左侧】(2)行为图/动态图 【上图右侧】
  • 哪些属于静态(结构)图,哪些属于动态(行为)图
  • 然后还要额外注意,用例图的归属,
    • 其中用例图不太明确,有的规定为动态(行为)图,有的归为静态(结构)图,先不要把用例图定性
    • 所以先把其他图分完类后再根据题目把用例图归位某类
  • 静态图
    • 类图:类与类之间的关系
    • 对象图:对象与对象之间的关系
    • 包图:包与包之间的关系
    • 部署图:主要是指,软件的构建应该部署在哪个硬件的结点之上
  • 动态图
    • 用例图:系统与外部的交换关系
    • 顺序图/序列图:一般会强调按照时间顺序,否者就无法标识他是哪一种图
    • 通信图/协作图:一般不会强调按照时间顺序,其他的和顺序图/序列图基本相似
    • 定时图:考的很少
    • 状态图:表达的是状态的变迁、转移的清况。
    • 活动图:它跟流程图的结构基本是一致的。


参考:一文掌握14种UML图:一文掌握14种UML图-腾讯云开发者社区-腾讯云

一、左边:静态结构图(系统的“骨架”)

这些图主要描述系统由哪些“零件”组成以及它们怎么拼在一起

1. 类图

  • 就像一张“零件清单+说明书”:
    • 清单里列“类”(比如用户、订单、商品);
    • 说明书写每个类的“属性”(比如用户有姓名、手机号)和“方法”(比如用户能登录、下单)。
  • 作用:让程序员知道要写哪些代码,比如要实现一个“电商系统”,先画类图理清“用户、订单、商品”的关系。

2.对象图

  • 类图的“实例版”
    • 类是“模板”,对象是“真实存在的个体”。
    • 比如用户类是个“模板”,而张三(手机号138xxxx)就是一个具体的用户对象。
  • 作用:展示某一时刻系统里实际存在的“东西”(比如某次交易中,张三下了个iPhone 15的订单)。

3.包图

  • 给“零件”分组,就像把散落的乐高块装进不同的盒子里。
    • 比如“用户相关的东西”放用户包,“订单相关的东西”放订单包。
  • 作用:让大系统更清晰,避免“零件”乱堆。

4.组合结构图

  • 看一个“零件”内部的“小零件”。
    • 比如汽车类内部,可能有发动机、轮胎、方向盘这些“小零件”(称为“部件”)。
  • 作用:深入展示复杂对象的内部结构(比如要设计一辆智能汽车,得知道它内部有哪些传感器、芯片)。

5.构件图/组件图

  • 软件里的“独立模块”,比如登录模块、支付模块、报表模块。
    • 这些模块可以单独开发、升级,甚至替换(比如把旧版的支付模块换成新的微信支付模块)。
  • 作用:规划软件的“模块化”结构,方便团队分工和维护。

6.部署图

  • 软件在“硬件”上的“摆放方式”
    • 比如电商系统要部署到哪些服务器上?数据库放在哪台服务器?前端页面放在 CDN 还是云服务器?
  • 作用:指导运维人员怎么把软件放到真实的机器上运行。

7.制品图
  • 软件开发过程中产生的“实物文件”
    • 比如代码文件(.java、.py)、文档(需求文档、设计文档)、安装包(.exe、.apk)、镜像文件(Docker 镜像)等。
  • 作用:跟踪项目过程中产生了哪些“成果物”,方便版本管理和交付。

二、右边:动态行为图(系统的“动作戏”)

这些图主要描述系统“怎么动”——用户怎么操作、模块怎么互动、流程怎么走

1.用例图(用例)

  • 用户视角的“任务清单”
    • 椭圆代表“用例”用户要做的事,比如登录系统、下订单、查物流);
    • 小人代表“参与者”使用系统的人或外部系统,比如顾客、管理员、支付网关);
    • 线表示“谁可以做这个事”。
  • 作用明确系统“要完成哪些功能”,是需求分析的起点(比如做电商系统前,先画用例图确定“顾客能下单、管理员能改库存”)。

2.顺序图/序列图

  • 按“时间顺序”展示“人物互动”
    • 横轴是“对象”(比如顾客、订单系统、支付系统),纵轴是“时间”,箭头表示“发送的消息”
    • 比如“顾客下单”的过程:顾客→订单系统(传订单信息)→订单系统→支付系统(请求支付)→支付系统→订单系统(返回支付结果)→订单系统→顾客(显示下单成功)。
  • 作用:清晰展示“谁在什么时候做了什么事”,适合描述复杂的交互流程(比如支付流程、客服工单处理流程)。

3.通信图/协作图

  • 和顺序图类似,但更关注“对象间的联系”,而不是 strict 时间顺序。
    • 用线连接对象,线上标“消息”(比如顾客.下单() 订单系统.验证库存())。
  • 作用:展示对象间的“协作关系”,适合看“哪些对象一起完成了某个功能”(比如“下单”功能涉及顾客、订单系统、库存系统、支付系统)。

4.定时图

  • 带“时间约束”的交互图。
    • 除了对象和时间,还会标“时长”(比如顾客点击下单后,必须在2秒内显示支付页面)、“时间点”(比如每天凌晨1点自动备份数据)。
  • 作用强调“时间要求”,比如实时系统(如股票交易平台)、嵌入式系统(如汽车刹车系统)必须满足严格的时间限制。

5.状态图

  • 一个“事物”的生命周期:从“出生”到“死亡”经历了哪些“状态”,以及“什么事件触发状态切换”。
    • 比如订单的状态:待付款→(顾客付款)→已付款→(商家发货)→已发货→(顾客收货)→已完成。
  • 作用:展示有状态变化的实体(比如订单、用户账户、设备),帮助理解其生命周期(比如为什么“待付款”订单超过24小时会自动取消)。

6.活动图

  • 流程的“路线图”:展示“开始→步骤→判断→结束”的完整流程。
    • 用菱形表示“判断”(比如库存充足吗?→是→继续;否→提示缺货),用箭头表示“流程方向”。
  • 作用:描述业务流程或算法流程(比如“用户注册流程”“订单处理流程”“贷款审批流程”),让非技术人员也能看懂怎么“走流程”。

7.交互概览图

  • 多个“顺序图/活动图”的“总览图”
    • 把复杂的交互拆成几个片段,再用框图把这些片段串起来,展示“整体流程由哪些子流程组成”。
  • 作用简化大型系统的交互描述(比如“电商平台的核心流程”包括“用户浏览→下单→支付→发货→售后”,每个子流程再用顺序图细化)。

三、总结

  • 静态结构图:看“系统长啥样”(静态结构);
  • 动态行为图:看“系统咋动”(动态行为)。

12.4 面向对象设计-设计模式概念

12.5 面向对象设计-设计模式的分类

12.6 面向对象设计-创建型模式

12.7 面向对象设计-结构型模式

12.8 面向对象设计-行为型模式


文档说明:希赛教育王勇老师软件设计师教学课程,这里学习整理后进行分享

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大手你不懂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值