UML 三要素:基本构造块,支配构造块放置的规则,运用于整个语言的公共机制
UML 三种构造块:事物,关系,图
事物 | 含义 | 组成 |
---|---|---|
结构事物 | UML模型中的名词 | 类(class) 接口(interface) 协助(collaboration) 用例(use case) 主动类(active class) 构件(component) 制品(artifact) 结点(Node) |
行为事物 | UML模型中的动态部分 | 交互(interaction) 状态机(state machine) 活动(activity) |
分组事物 | UML模型中的组织部分 | 包(package) |
注释事物 | UML模型中的解释部分 | 注解(Note) |
常用关系 | 定义 | 实例 |
---|---|---|
依赖 | 一个类需要另一个类的协助 | 老师开车回家 老师与车是依赖关系 |
关联 | 拥有关系 使一个类知道另一个类的属性和方法 |
客户类与订单类之间的关系 |
聚合 | 整体与部分关系 | 公司拥有职工 |
组合 | 整体与部分关系,不可分离 | 公司与部门的关系 |
实现 | 类与接口的关系 | 继承 |
图 | 定义 |
---|---|
用例图 | 参与者与用例间关系 |
活动图 | 系统内一个活动到另一个活动的流程 |
类图 | 对象、接口、协作间关系 |
对象图 | 某一时刻对象间关系 |
状态图 | 状态机 |
序列图 | 以时间为顺序,对象间的交互 |
通信图 | 强调收发信息的对象的组织结构 |
序列图 | 以时间为顺序,对象间的交互 |
交互概览图 | 业务过程中控制流概览,详细逻辑概览,连接多个图 |
计时图 | 对象状态随时间改变,类似示波器 |
构件图 | 构件间组织和依赖 |
组合结构图 | 分类器内部结构 |
部署图 | 运行时处理结点以及其中构件的配置,在实施时使用 |
包图 | 由模型本身分解而成的组织单元以及其间的依赖关系 |
创建型模与对象创建有关;
结构型模式处理类或对象的组合;
行为型模式描述类或对象的交互与职责分配。
模式 | 创建型 | 结构型 | 行为型 |
---|---|---|---|
类 | factory method | adapter(类) | interpreter template method |
对象 | abstract factory builder prototype singleton |
adapter(对象) bridge composite decorate facade flyweight proxy |
chain of responsibility command iterator mediator memento observer state strategy visitor |
模式 | 定义 |
---|---|
factory method | 定义一个用于创建对象的接口,由子类决定实例化哪一个类 |
abstract factory | 提供一个用于创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类 |
builder | 将复杂对象的构建与它的表示分离,使同一构建过程可以创建不同表示 |
prototype | 用原型实例指定创建对象的种类,通过复制原型构建新的对象 |
singleton | 保证一个类仅有一个实例,提供一个全局访问点访问它 |
adapter | 将一个类的接口转换成用户希望的另一个接口,解决接口不兼容问题 |
bridge | 抽象部分与实现部分分离,各部分独立变化 |
composite | 将对象组合成树型结构来表示整体与部分的层次结构 |
decorator | 给对象动态添加额外职责 |
facade | 为子系统接口提供一致界面。定义一个高层接口使子系统易用 |
flyweight | 使用共享技术支持大量细粒度对象 |
proxy | 其他对象使用代理控制本对象的访问 |
interpreter | 给定语言,定义文法和解释器 |
template method | 定义算法骨架,延迟步骤至子类。不改变算法结构即可重定义该算法的特定步骤 |
chain of responsibility | 将对象连成链,沿链传递请求直到被对象处理 |
command | 封装请求为对象,可用不同请求对客户进行参数化,记录请求日志,支持可撤销操作 |
iterator | 顺序访问聚合对象中的元素,不暴露对象的内部表示 |
mediator | 用中介对象封装一系列对象交互,使对象不能显式地相互引用 |
memento | 不破坏封装型,捕获对象内部状态并在对象之外保存此状态 |
observer | 定义对象间一对多的依赖关系,当一个对象改变,其他依赖对象被通知并自动更新 |
state | 允许对象在其内部状态改变时改变它的行为 |
strategy | 定义算法病封装使其可以互换 |
visitor | 不改变各元素的类 ,定义新操作 |
1、软件设计师教程(第五版)
2、UML类图与类的关系详解
3、软件设计之UML—UML中的六大关系
联系客服