一、UML简述

类是面向对象系统中最重要的构造块。类图显示了一组类、接口、协作以及他们之间的关系,通过类图,我们能够很好的掌握类与类之间的关系。

首先给出一幅UML类图,此图来源于《大话设计模式》,其中讲的很好,感兴趣的可以去查看。然后细细查看图中的每个符号、每个元素,思考之间的关系。

二、UML类图中包括常用的六种关系以及各自的表示形式

从上图中我们可以很明显的发现六种关系及各自如何表示,

1. 空心三角形+实线:继承关系

2. 空心三角形+虚线:实现接口

3. 空心菱形+实线箭头:聚合关系

4. 实心菱形+实线箭头:组合关系

5. 实线箭头:关联关系

6. 虚线箭头:依赖关系

注意事项一:

图中“+”符号,一共有三种符号:

"+":public

"-":private

"#":protected

注意事项二:

类:第一行写类名称。

第二行声明属性及变量。

第三行声明方法。

类名称以斜体形式表示时,说明此类为抽象类。

注意事项三:

接口:

第一行除了写接口名称之外,还要在最上层标注<<interface>>。

第二行为空。

第三行为方法声明。

继承关系和实现接口这两者在面向对象编程中经常用到,都很熟悉,那么接下来介绍下后面四中关系。

1. 聚合关系,是"has-a"的关系,表示一种弱的“拥有”,表示对象A可以包含对象B,但对象B可能并不是对象A的一部分。

例如雁群和大雁之间的关系,雁群有很多只大雁组成,但大雁也可以不在雁群中。

代码实现:

 class WideGooseAggregate{
private WideGoose[] arrayWideGooses;
}

2. 组合关系,是"contains-a"的关系,表示一种很强的“拥有”,体现了部分和整体的关系,部分和整体的生命周期相同。

例如鸟和翅膀之前的关系,翅膀是鸟的组成部分,两者之前的声明周期是相同的。

代码表示:

 class Bird{
private Wing mWing;
public Bird(){
mWing = new Wing();//初始化时,同时生成翅膀Wing,表示同时开始,也必然同时结束
}
}

3. 关联关系:是一种结构化的关系,指一种对象和另一个对象有联系。给定有关联的两个类,可以从一个类的对象得到另一类的对象。

例如企鹅和气候的关系。

代码表示:

 class Penguin extends Bird
{
private Climate climate;//在企鹅Penguin对象中引用了气候Climate对象
}

4. 依赖关系:是一种使用关系,特定事物的改变有可能会影响到使用该事物的物体,反之不成立。

例如动物要有生命力,需要氧气,水及食物等,所以动物依赖于氧气,水等,他们之间是以来关系。

代码实现:

 abstract class Animal{
public Metabolism(Oxygen oxygen,Water water){ }
}

UML图基础知识的更多相关文章

  1. 如何看K线图基础知识

    在日K线图中一般白线.黄线.紫线.绿线依次分别表示:5.10.20.60日移动平均线,但这并不是固定的,会根据设置的不同而不同,比如你也可以在系统里把它们设为5.15.30.60均线. 你看K线图的上 ...

  2. UML 建模 -- 基础知识

    1.UML简介 UML(Unidied Modeling Language)为面向对象软件设计提供统一的,标准的,可视化的建模语言.适用于以用例为驱动,以体系结构为中心的软件设计全程 2.UML模型的 ...

  3. UML 类图基础知识记录

    UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 依赖(Dependency): 关联(Association): 聚合(Aggregation): 合成(Composition): 泛化 ...

  4. 页面制作学习笔记:D2.Photoshop切图基础知识

    一.什么是切图? 切图就是从网页设计稿中切出网页素材,比如一些小的按钮.小的图片.页面的LOGO.网页的背景图片等. 然后就是页面编码,引入图片资源 在HTML里通过 img 标签引入图片资源 < ...

  5. UML图基础

    UML(Unified Model Language)统一建模语言,是对象管理组织(OMG)制定的一个通用的.可视化的建模标准语言,可以用来可视化.描述.构造和文档化软件密集型系统的各种工作.在学习设 ...

  6. 关于图算法 & 图分析的基础知识概览

    网址:https://learning.oreilly.com/library/view/graph-algorithms-/9781492060116/ 你肯定没有读过这本书,因为这本书的发布日期是 ...

  7. 【二】、UML基础知识——图图解乾坤

    [二].UML基础知识 UML概述 UML是一个通用的可视化建模语言,不同于编程语言,它通过一些标准的图形符号和文字来对系统进行建模.用于对软件进行描述.可视化处理.构建软件系统的文档.是一套总结了以 ...

  8. UML uml基础知识

    uml基础知识 一.了解: uml是Unified Modeling Language的缩写,意思是统一建模语言或标准建模语言. UML规范用来描述建模的概念有,类(对象的).对象.关联.职责.行为. ...

  9. redis基础知识思维导图

    看到一张redis的基础知识思维导图,比较清晰, 但是没有标明来源,希望知道的给个地址,我也好说明来源 图大小有1M多.在博客上看比较模糊,可以先下载下来查看,或者在浏览器新标签中打开图片查看,就比较 ...

随机推荐

  1. VSFTPD配置和错误 ,这篇文章也太厉害了

    配置过程 1.关闭防火墙  service iptables stop 2.启动vsftpd   service vsftpd start 3.添加root用权 cd /etc/vsftpd   更改 ...

  2. 黄聪:JQUERY判断操作CHECKBOX选中、取消选中、反选、第二次无法选中的问题

    用JQuery做CheckBox全选和反选的时候,遇到一个问题.当用JQ控制全选,全取消一次以后,再次点击全选,发现代码变了,但是CheckBox没有处于选中状态. $("#id" ...

  3. Selenium+Python:下载文件(Firefox 和 Chrome)

    引自  https://blog.csdn.net/Momorrine/article/details/79794146 1.      环境 操作系统 Win10 IDE Eclipse (Oxyg ...

  4. Hadoop 管理工具HUE配置-集成Unix用户和用户组

    HUE安装完成之后,第一次登录的用户就是HUE的超级用户,可以管理用户,等等.但是在用的过程发现一个问题这个用户不能管理HDFS中由supergroup创建的数据. 虽然在HUE中创建的用户可以管理自 ...

  5. problem:vue之数据变更没有触发视图更新问题

    前言: 数据变更之后,vue如何渲染dom? 实际场景: 更新数据之后,再设置滚动条的位置为什么设置无效? 为什么将隐藏的元素设置为显示状态之后,读取元素状态读取不到? 改变了对象/数组中的值,页面没 ...

  6. vue之文本渲染

    Vue使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据.所有Vue的模板都是合法的HTML,所以能被遵循规范的浏览器和HTML解析器解析. 在前面,我们一直使用的是{ ...

  7. go语言学习--go的临时对象池--sync.Pool

    一个sync.Pool对象就是一组临时对象的集合.Pool是协程安全的. Pool用于存储那些被分配了但是没有被使用,而未来可能会使用的值,以减小垃圾回收的压力.一个比较好的例子是fmt包,fmt包总 ...

  8. http、TCP/IP协议与socket之间的区别(转载)

    http.TCP/IP协议与socket之间的区别  https://www.cnblogs.com/iOS-mt/p/4264675.html http.TCP/IP协议与socket之间的区别   ...

  9. SCCM2012 R2实战系列之七:软件分发(exe)

    在上一章节中,我们完成了SCCM 2012客户端代理软件的安装,现在就可以为客户端来部署应用程序了. SCCM2012增加了应用程序分发,同时保留了SCCM 2007里的包分发.应用程序分发可以直接对 ...

  10. Iptabels防火墙和SElinux

    两者的区别: iptables用于设置防火墙(firewall), 即管理内外通信. iptables是Linux下功能强大的应用层防火墙工具iptables 能做到“控制内部机器上网与不上网,访问哪 ...