当前位置: 首页 > news >正文

UML建模和设计模式——常考点整理

UML中的9种图

1、类图
静态图,为系统的静态设计视图,展现一组对象、接口、协作和它们之间的关系。
在这里插入图片描述
2、对象图
静态图,展现某一时刻一组对象及它们之间的关系,为类图的某一快照。在没有类图的前提下,对象图就是静态设计视图。
在这里插入图片描述
3、用例图
静态图,展现了一组用例、参与者以及它们之间的关系。用例图中的参与者是人、硬件或其他系统可以扮演的角色;用例是参与者完成的一系列操作,用例之间的关系有扩展、包含、泛化。
在这里插入图片描述
4、序列图(顺序图)
动态图,是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。有同步消息(实心箭头)、异步消息(空心箭头)、返回消息(虚线箭头)三种。上方的对象对应下方箭头上的成员和方法。
在这里插入图片描述
5、通信图(协作图)
动态图,强调参加交互的对象的组织。
在这里插入图片描述
6、状态图
动态图,展现了一个状态机,描述单个对象在多个用例中的行为,包括简单状态和组合状态。
在这里插入图片描述
7、活动图
动态图,是一种特殊的状态图,展现了在系统内从一个活动到另一个活动的流程。活动的分岔和汇合线是一条水平粗线。
在这里插入图片描述
8、构件图(组件图)
静态图,为系统静态实现视图,展现了一组构件之间的组织和依赖。
在这里插入图片描述
9、部署图
静态图,为系统静态部署视图,部署图物理模块的节点分布。它与构件图相关,通常一个节点包含一个或多个构件。
在这里插入图片描述

设计模式

设计模式主要分三种:创建型模式、结构型模式、行为型模式。

1、创建型模式
解决对象的创建机制,将对象的​​创建与使用分离​​,隐藏实例化过程的细节。

  • Abstract Factory(抽象工厂模式,抽象接口)
  • Builder(构建器模式,类和构造分离)
  • Factory Method(工厂方法模式,子类决定实例化)
  • Prototype(原型模式,原型实例,拷贝)
  • Singleton(单例模式,唯一实例)

2、结构型模式
处理类或对象的​​组合方式​​,形成更大的结构以扩展功能。

  • Adapter(适配器模式,转换,兼容接口)
  • Bridge(桥接模式,抽象和实现分离)
  • Composite(组合模式,整体-部分,树形结构)
  • Decorator(装饰模式,附加职责)
  • Facade(外观模式,对外统一接口)
  • Flyweight(享元模式,细粒度,共享)
  • Proxy(代理模式,代理控制)

3、行为型模式
定义对象间的​​交互与职责分配​​,管理算法流程和状态变化。

  • Chain of Responsibility(职责链模式,传递请求、职责、链接)
  • Command(命令模式,日志记录、可撤销)
  • Interpreter(解释器模式,解释器,虚拟机)
  • Iterator(迭代器模式,顺序访问,不暴露内部)
  • Mediator(中介者模式,不直接引用)
  • Memento(备忘录模式,保存,恢复)
  • Observer(观察者模式,通知、自动更新)
  • State(状态模式,状态变成类)
  • Strategy(策略模式,算法替换)
  • Template Method(模板方法模式,定义算法骨架,然后再细化)
  • Visitor(访问者模式,数据和操作分离)

4+1视图

体系结构模型的多视图表示是从不同的视角描述特定系统的体系结构。

  1. 逻辑视图
  2. 开发视图
  3. 物理视图
  4. 进程视图
  5. 统一的场景

面向对象基础

1、面向对象的基本概念

  • 对象:对象名,属性,方法
  • 类:实体类、接口类、控制类
  • 抽象:抽取共同特征
  • 封装:对数据的访问或修改只能通过接口
  • 继承:单继承、多继承
  • 多态:参数多态、包含多态、过载多态、强制多态
  • 接口:描述对操作规范的说明
  • 消息:通过它向目标对象发送操作请求
  • 覆盖:在子类中重定义一个与父类同名同参的方法
  • 函数重载:同名不同参
  • 绑定:把过程调用和响应调用所需要执行的代码加以结合

2、面向对象的分析
为了确定问题域,理解问题,包含五个活动

  1. 认定对象
  2. 组织对象
  3. 描述对象间的相互作用
  4. 确定对象的操作
  5. 定义对象的内部信息

3、面向对象需求建模

  • 用例模型(识别参与者、合并需求获得用例、细化用例描述、调整用例模型)
  • 分析模型(定义概念类、识别类之间的关系、为类添加职责、建立交互图)

4、面向对象的设计
是设计分析模型和实现相应源代码,设计问题域的解决方案,与技术相关。

  • 面向对象的分析模型(顶层架构图、用例与用例图、领域概念模型)
  • 设计模型(软件体系结构图、用例实现图、类图、状态图、活动图)

设计原则:

  • 单一责任原则(一个类只做一种类型责任)
  • 开放——封闭原则(软件实体可扩展、不可修改)
  • 里氏替换原则(子类必能替换基类)
  • 依赖倒置原则(高层模块不应该依赖于低层模块)
  • 接口分离原则(不应该强迫客户依赖于它们不用的方法)
  • 重用发布等价原则(重用的粒度就是发布的粒度)
  • 共同封闭原则(一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响)
  • 共同重用原则(如果重用了包中的一个类,那么就要重用包中的所有类)
  • 无环依赖原则(在包的依赖关系图中不允许存在环)
  • 稳定依赖原则(朝着稳定的方向进行依赖)
  • 稳定抽象原则(包的抽象程度应该和其稳定程度一致)

5、面向对象的测试
分为四个层次进行:

  • 算法层:测试类中每个方法。
  • 类层:测试封装在同一个类中的所有方法与属性之间的相互作用。
  • 模板层:测试一组协同工作的类之间的相互作用。
  • 系统层:把各个子系统组装成完整的面向对象软件系统,在组装过程进行测试。
http://www.lryc.cn/news/587953.html

相关文章:

  • VScode链接服务器一直卡在下载vscode服务器,无法连接成功
  • 视频动态范围技术演进:从SDR到HDR的影像革命
  • 【Unity】MiniGame编辑器小游戏(十三)最强射手【Shooter】(下)
  • wpf 实现窗口点击关闭按钮时 ​​隐藏​​ 而不是真正关闭,并且只有当 ​​父窗口关闭时才真正退出​​ 、父子窗口顺序控制与资源安全释放​
  • 单向链表、双向链表、栈、队列复习(7.14)
  • 软件测试中的BUG等级与生命周期详解
  • Java 中的异步编程详解
  • Git根据标签Tag强制回滚版本
  • LVS初步学习
  • LVS(Linux Virtual Server)集群技术详解
  • 【第一章编辑器开发基础第二节编辑器布局_2GUI中滚动列表(2/4)】
  • langflow搭建带记忆功能的机器人
  • 深入了解linux系统—— 进程信号的产生
  • 核电概念盘中异动,中核科技涨停引领板块热度
  • 机器学习/深度学习训练day1
  • 穿透、误伤与回环——Redis 缓存防御体系的负向路径与治理艺术
  • VirtualBox 安装 CentOS7 后无法获取 IP 的排查与修复
  • mysql 与redis缓存一致性,延时双删 和先更新数据库,再删除缓存,哪个方案好
  • 深浅拷贝以及函数缓存
  • 机床自动化中的“方言翻译官”:EtherNet/IP 转 PROFIBUS DP 实战手记
  • Redis作缓存时存在的问题及其解决方案
  • TensorFlow深度学习实战(26)——生成对抗网络详解与实现
  • 聚宽sql数据库传递
  • sqlserver迁移日志文件和数据文件
  • pytorch小记(二十九):深入解析 PyTorch 中的 `torch.clip`(及其别名 `torch.clamp`)
  • linux 驱动的platform机制:
  • SQL ORM映射框架深度剖析:从原理到实战优化
  • SPL 轻量级多源混算实践
  • Redis集群方案——Redis分片集群
  • Linux 消息队列接收与处理线程实现