文章目录

  • 1 UML 基本介绍
  • 2 UML 图
  • 3 UML 类图
  • 4 类图—依赖关系(Dependence)
  • 5 类图—泛化关系(generalization)
  • 6 类图—实现关系(Implementation)
  • 7 类图—关联关系(Association)
  • 8 类图—聚合关系(Aggregation)
  • 9 类图—组合关系(Composition)

1 UML 基本介绍

  1. UML——Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用
    于帮助软件开发人员进行思考和记录思路的结果
  2. UML 本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他
    们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等,如下图
  3. 使用 UML 来建模,常用的工具有 Rational Rose , 也可以使用一些插件来建模

2 UML 图

画 UML 图与写文章差不多,都是把自己的思想描述给别人看,关键在于思路和条理,UML 图分类:

  1. 用例图(use case)
  2. 静态结构图:类图、对象图、包图、组件图、部署图
  3. 动态行为图:交互图(时序图与协作图)、状态图、活动图

3 UML 类图

  1. 用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系。
  2. 类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合。
  3. 类图简单举例
public class Person{ //代码形式->类图private Integer id;private String name;public void setName(String name){this.name=name;}public String getName(){return name;}
}

4 类图—依赖关系(Dependence)

只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编绎都通过不了。

public class PersonServiceBean {private PersonDao personDao;//类public void save(Person person){}public IDCard getIDCard(Integer personid){}public void modify(){Department department = new Department();}
}
public class PersonDao{}
public class IDCard{}
public class Person{}
public class Department{}

对应的类图:

小结

  1. 类中用到了对方
  2. 如果是类的成员属性
  3. 如果是方法的返回类型
  4. 是方法接收的参数类型
  5. 方法中使用到

5 类图—泛化关系(generalization)

泛化关系实际上就是继承关系,他是依赖关系的特例

public abstract class DaoSupport{public void save(Object entity){}public void delete(Object id){}
}
public class PersonServiceBean extends Daosupport{}

对应的类图

小结:

  1. 泛化关系实际上就是继承关系
  2. 如果 A 类继承了 B 类,我们就说 A 和 B 存在泛化关系

6 类图—实现关系(Implementation)

实现关系实际上就是 A 类实现 B 接口,他是依赖关系的特例

public interface PersonService {public void delete(Interger id);
}
public class PersonServiceBean implements PersonService {public void delete(Interger id){}
}

=>类图:

7 类图—关联关系(Association)

关联关系实际就是类与类之间的联系,他是依赖关系的特例。
关联具有导航性,即双向关系或单项关系。
关系具有多重性:如“1”(表示有且仅有一个),“0…”(表示0个或者多个),“0,1”(表示0个或者一个),“n…m”(表示n到 m个都可以),“m…*”(表示至少m个)。

//单向一对一关系
public class Person {private IDCard card;
}
public class IDCard{}
//双向一对一关系
public class Person {private IDCard card;
}
public class IDCard{private Person person
}

8 类图—聚合关系(Aggregation)

聚合关系(Aggregation)表示的是整体和部分的关系,整体与部分可以分开。
聚合关系是关联关系的特例,所以他具有关联的导航性与多重性。
如:一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成;组成电脑的各个配件是可以从电脑上分离出来的,使用带空心菱形的实线来表示:

9 类图—组合关系(Composition)

组合关系:也是整体与部分的关系,但是整体与部分不可以分开。
再看一个案例:在程序中我们定义实体:Person 与 IDCard、Head, 那么 Head 和 Person 就是 组合,IDCard 和Person 就是聚合。
但是如果在程序中 Person 实体中定义了对 IDCard 进行级联删除,即删除 Person 时连同 IDCard 一起删除,那么 IDCard 和 Person 就是组合了.
应用案例

public class Person{private IDCard card;private Head head = new Head();
}
public class IDCard{}
public class Head{}

对应的类图

案例 2

public class Computer {private Mouse mouse = new Mouse(); //鼠标可以和 computer 不能分离private Moniter moniter = new Moniter();//显示器可以和 Computer 不能分离public void setMouse(Mouse mouse) {this.mouse = mouse;}public void setMoniter(Moniter moniter) {this.moniter = moniter;}
}
public class Mouse {}
public class Moniter {}

对应的类图

【大话设计模式-2】UML 类图的绘制(源码案例分析)相关推荐

  1. 23种常用设计模式的UML类图

    23种常用设计模式的UML类图 本文UML类图参考<Head First 设计模式>(源码)与<设计模式:可复用面向对象软件的基础>(源码)两书中介绍的设计模式与UML图. 整 ...

  2. 图解Java设计模式之UML类图

    图解Java设计模式之UML类图 3.1 UML基本介绍 UML图 UML类图 3.1 UML基本介绍 1)UML – Unified modeling language UML(统一建模语言),是一 ...

  3. 从零开始单排学设计模式「UML类图」定级赛

    阅读本文大概需要 3.5 分钟. 本篇是设计模式系列的开篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统. 所以现在打算重写,加上距离现在也有一段时间了, ...

  4. 从零开始单排学设计模式「UML类图」定级赛 1

    阅读本文大概需要 3.5 分钟. 本篇是设计模式系列的开篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统. 所以现在打算重写,加上距离现在也有一段时间了, ...

  5. 设计模式之UML类图

    在学设计模式的过程中经常碰到各式各样的UML类图.那些眼花缭乱的符号有什么含义呢? 类图含义 类图中的关系 从网上找来一张图作为实例 依赖关系:比如动物依赖氧气和水,这里如学生要依赖自行车.用虚线箭头 ...

  6. 设计模式:UML类图

    UML类图 一.UML基本介绍 UML--Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路 ...

  7. 各种设计模式的UML类图

    一.单一职责原则 就一个类而言,应该仅有一个引起它变化的原因. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力.这种耦合会导致脆弱他的设 ...

  8. MVC设计模式和UML类图

    文章目录 一.UML 类图: 二.MVC 设计模式 一.UML 类图: 14中UML图:https://blog.csdn.net/yoyo328/article/details/78009237 二 ...

  9. 【设计模式】UML类图关系与符号

    文章目录 一.UML简介 1.1 UML类图常用关系 1.2 UML模型结构 1.3 UML类的表示 二.类之间的关系 2.1 泛化(Generalization) 2.2 实现(Realizatio ...

最新文章

  1. 基于地平面的单目视觉里程计绝对尺度估计
  2. webpack 单独打包指定JS文件
  3. DellEMC品牌正式启用50%是上一代的R730对比R74
  4. 《编程珠玑》笔记3 数据结构选择
  5. HDU 1597 find the nth digit (二分查找)
  6. 【Python CheckiO 题解】All the Same
  7. 两个sql交集_sql的高级命令运用
  8. webpack插件实现自动抽取css中的主题色样式,并动态切换主题色(element-ui)
  9. VC实现程序重启的做法
  10. Django 09-2 模型层 字段
  11. 深入理解JavaScript内部原理(6): 闭包
  12. 云原生高可用技术体系的构建思路与难点分析
  13. 【优化预测】基于matlab蝙蝠算法优化SVM预测【含Matlab源码 141期】
  14. FANUC NC GUIDE PRO 17.1虚拟机(XP系统)
  15. vue 项目中引入字体文件的正确方式~
  16. cad墙线打断lisp_autocad 2010怎么打断墙线?
  17. python中sub函数用法_Python pandas.DataFrame.sub函数方法的使用
  18. “本地资源检测” 上手指南,玩转最前沿的优化黑科技!
  19. 解决Excel中使用VBA出现microsoft visual c++ runtime错误
  20. 用户的虚拟地址 linux 0 4gb,Linux驱动虚拟地址和物理地址的映射

热门文章

  1. 谷歌如何注册账号?手机号无法验证处理方法!2023年最新教程!
  2. fiddler CSFF安全漏洞-重点讲解refer字段、token字段
  3. python里的map是什么意思_map在python中什么意思
  4. Unity2D:物体旋转方法
  5. casewhen多条件查询_Mybatis(三)- MyBatis 多条件查询和模糊查询实例
  6. SAP 检验批决策增强
  7. C++后端开发面试题精选
  8. 中兴网络设备交换机路由器查看BGP状态检查命令方法
  9. Shrinkage: I was in the pool
  10. 【损失函数系列】softmax loss损失函数详解