(已废弃)UML类图学习

已废弃,请看新版:重温 UML 类图

前一篇写了 UML 工具,接下来就该写写怎么学者写 UML 图了。UML 的重要性大家应该都深有体会了把,要是没有体会说明你的技术还是不入流的入门水平啊。最简单的,写不好 UML 图,我让你写一个复杂点的功能框架,你肯定抓瞎,改来改去的,折腾死你。

UML 也是一种国际规范建模语言,也是一种语言,那么他肯定就有规范啦,找到这个规范的规则,我们学习起来就会很快的。

UML图 建模分成9种图:

  • 类图(Class Diagram):描述系统所包含的类、类内部结构及类之间的关系。
  • 对象图(Object Diagram):是类图的一个具体实例。
  • 组件图(Compoment Diagram):描述代码部件的物理结构以及各部件之间的依赖关系。
  • 部署图(Deployment Diagram):定义系统中软、硬件的物理体系结构。
  • 用例图(Usecase Diagram):从用户的角度出发描述系统的功能、需求,展示系统外部的各类角色与系统内部的* 各种用例之间的关系。
  • 时序图(Sequence Diagram):表示对象之间动态合作的关系。
  • 协作图(Collaboration Diagram):描述对象之间的协作关系。
  • 状态图(Statechart Diagram):描述一类对象的所有可能的状态及事件发生时状态的转移条件。
  • 活动图(Activity Diagram):描述系统中各种活动的执行顺序。

上面的9中图可以归纳为下表:

类型 包含
静态图 类图、对象图
行为图 状态图、活动图
用例图 用例图
交互图 顺序图、协作图
实现图 组件图、部署图

我们最常用的呢,就是类图了,其他的就差了,这里我们就来好好学学类图的绘制,想看9种 UML 图的介绍,看这里: UML实践详细经典教程----用例图、顺序图、状态图、类图、包图、协作图


UML 类图中的类

类在 UML 类图中其实是分了3种角色的:

  • 实体类
    实体类对应系统需求中的每个实体,它们通常需要保存在永久存储体中,一般使用数据库表或文件来记录,实体类既包括存储和传递数据的类,还包括操作数据的类。实体类来源于需求说明中的名词,如学生、商品等。
  • 控制类
    控制类用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度。控制类一般是由动宾结构的短语(动词+名词)转化来的名词,如增加商品对应有一个商品增加类,注册对应有一个用户注册类等
  • 边界类
    边界类用于对外部用户与系统之间的交互对象进行抽象,主要包括界面类,如对话框、窗口、菜单等。
    在面向对象分析和设计的初级阶段,通常首先识别出实体类,绘制初始类图,此时的类图也可称为领域模型,包括实体类及其它们之间的相互关系。

我们看 UML 类图有个七技巧,可以从作为 UI 界面的边界类作为起点,因为整个系统的表现就是从 UI 显示开始的

知道了 UML 中类的角色,那么接下来,我们来看看 UML 中一个 class 的绘制结构


2011090716395022.jpg

方法要是有参数的话,也是要在 ( ) 里写上的,:后面是返回值类型,一个简单的图,就能够很直观的描述一个类,比看代码都了解的快。

当然接口也是这个思路写的,看图:


7984955-f96e38080e7972d2.jpg

UML 类的相互关系

UML 图可以很直观,简单的表述清楚一个复杂的系统类结构,用的是什么手段呢,就是丰富准确的类之间关系的设计:

  • 继承关系(泛化关系):为啥这样叫我也不知道啊,看着真蛋疼!!!
  • 实现关节(接口)
  • 关联关系
  • 依赖关系
  • 组合关系
  • 聚合关系

直观的所有关系图:


2012091218440850.jpg

1870963-66cc761f11b9f2d0.png

挑了2张图,应该可以满足各位不同的口味啦。

继承关系(泛化关系)

Snip20171124_20.png
  • 符号:实线 + 空箭头
  • 方向:从子类 —> 父类

实现关节(接口)

Snip20171124_21.png
  • 符号:虚线 + 空箭头
  • 方向:从实现类 —> 接口

下面的就要好好解释一下了,不是很好理解,第一次接触的要注意了。

单向关联

Snip20171124_22.png
  • 符号:实线+ 箭头(注意不是空箭头啦)
  • 方向:从持有者 —> 被持有者(类似观察者和被观察者的关系)
  • 理解:可以理解为一个类作为另一个类的变量被操作,这里是 China 这个人持有了 pay 这个对象,用来支付。严格来说,关联关系表示 A 的操作需要 B 的参与,并不是严格的 B 一定要作为 A 的全局变量存在,我看有这么写的,不知道准确不准确。

双向关联

Snip20171124_26.png
  • 符号:实线,没箭头了
  • 理解:大体同单向关联,注意两边都有箭头,区别是双方各自作为对方的变量被操作。

聚合关系

Snip20171124_27.png
  • 符号:实线+ 实心菱形箭头
  • 方向:从组件 —> 容器
  • 理解:和单向关联一样,也是表示一个类在另一个类中作为全部变量存在被调用,聚合关系呢更准确的表示组件和容器的关系,注意这里是实心菱形箭头,表示容器类销毁了,组件累也会销毁。

组合关系

Snip20171124_28.png
  • 符号:实线+ 空心菱形箭头(注意不是实心的了)
  • 方向:从组件 —> 容器
  • 理解:和聚合关系一样,区别是使用空心的菱形箭头,表示容器类销毁了,但是组件类还会存在,不会跟着被销毁

依赖关系

Snip20171124_30.png
  • 符号:虚线
  • 方向:从调用方法的类 —> 参数类
  • 理解:表示一个类的某个方法会使用另一个类的对象作为参数,这个对象是作为方法的传入参数存在,而不是全局变量

参考资料:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343