UML类图归纳
作为一个程序员,掌握UML类图是开发和阅读程序的基础。
转载请注明地址http://www.cnblogs.com/zrtqsk/p/3739288.html,谢谢!
一、基本介绍
UML是一种标准的图形化建模语言。类图显示了一组类、接口、协作以及他们之间的关系。UML类图是一种静态视图的图形表达方式,通过它,编程人员可以更清楚的了解系统中类与类之间的关系。
类图的基本模型元素如下:
我们可以看到,一个类图表示为长方形,分为3部分,最上面是类名,中间是类的属性,下面是类的操作。
抽象类和接口和类图是类似的,下面将详细讲解。
二、基本定义
1、属性
如图:
属性一般通过如上的格式表示——<访问权限><属性名>:<属性类型>=<初始值>
对于可见性 : +表示public,-表示private,#表示protected,没有符号表示默认包访问权限
(如果一个属性只在类的内部使用,一般称为Attribute。若提供了相应的get、set方法,一般称为Property)
2、方法
如图:
方法一般通过如上格式表示——<访问权限><方法名>:(<参数1名>:<参数1类型>,<参数2名>:<参数2类型>):<返回值类型>
静态方法用下划线表示。
抽象方法,整条操作都用斜体表示。
3、类和接口
抽象类
抽象类和接口都是类名用斜体表示,接口还可以用一个圆圈表示。
三、关系
1、关联
关联关系一般用一条直线表示。
1)普通关联
—— 用一条箭头表示关联的方向。
—— 图中的数字表示重数
0..1 表示 0或1个对象
0..*或0 表示 0到多个对象
5..8 表示 5到8个对象
2 表示 2个对象
没有标示 表示 1个对象
2)递归关联
表示一个类和自身有关联关系。
3)聚合关联
表示类与类具有“整体与部分”的关系,用一个空心菱形表示整体。
4)合成关系(强聚合)
表示部分不能脱离整体而存在。用一个实心的菱形表示整体。
2、泛化(继承)
用一个实线加一个空心的箭头表示,继承的一方指向被继承的一方。
3、实现
用虚线加一个空心的箭头表示,实现的一方指向接口。
4、依赖
用一个虚线箭头表示。即类Client用到了RightDao和RightDaoImpl。
(部分内容参照《研磨设计模式》)
UML类图归纳的更多相关文章
- UML类图的6大关系
<小酌重构系列>已经完成了大约1/3了,在这些文章中,我使用了一些简单的类图来描述重构策略.在之后的文章中,我可能会借助稍微复杂一些的UML类图来介绍.但是在此之前,我觉得有必要先介绍一下 ...
- 四步轻松实现用Visio画UML类图
本节和大家一起学习一下用Visio画UML类图的方法,主要有四个步骤,这里和大家分享一下,相信通过本节的学习,你对Visio画UML类图的步骤一定会有所了解. 用Visio画UML类图 对于画类图的工 ...
- php设计模式——UML类图
前言 用php开发两年多了,准备也写一下平时常用的设计模式,都是基于自己的实践经验,当然,用设计模式之前首先要看懂设计模式,因此这里首先讲解一下UML类图.通过UML类图,能更好的和大家交流,也能很容 ...
- UML类图(下):关联、聚合、组合、依赖
前言 上一篇文章UML类图(上):类.继承.实现,讲了UML类图中类.继承.实现三种关系及其在UML类图中的画法,本文将接着上文的内容,继续讲讲对象之间的其他几种关系,主要就是关联.聚合.组合.依赖, ...
- UML类图(上):类、继承和实现
面向对象设计 对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做.伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现.如果要自己设计,无论是给自己看,还是给别人看 ...
- UML类图几种关系的总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...
- UML类图关系全面剖析
UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1- ...
- UML类图关系--继承(泛化)、实现、关联、聚合、组合、依赖
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composi ...
- [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图
[.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统 ...
随机推荐
- Apache 反向代理实现为http添加https的外衣
Apache 反向代理 金天:坚持写东西,不是一件容易的事,换句话说其实坚持本身都不是一件容易的事.如果学习有捷径,那就是不断实践,不断积累.写笔记,其实是给自己看的,是体现积累的一种方式,要坚持. ...
- 数据库 SQL语句小结(更新中)
################ Navicat,单条执行sql ################ Navicat,数据库管理工具, 在查询的页面有好多命令,若单条执行: 1:可选中要执行的一条sql ...
- JavaScript Patterns 5.2 Declaring Dependencies
It’s a good idea to declare the modules your code relies on at the top of your function or module. T ...
- SQL Server(四)——查询练习(45道习题)
题目:设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher). 四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1 ...
- request 、response和session的区别
request: 1.request.getParameter("key")接受的是来自客户登陆端的数据,接受的是post或get方式传送的value. 2.请求的默认字符集是IS ...
- InnoDB源码分析--缓冲池(三)
转载请附原文链接:http://www.cnblogs.com/wingsless/p/5582063.html 昨天写到了InnoDB缓冲池的预读:<InnoDB源码分析--缓冲池(二)> ...
- js日期比较
alert(EDate< new Date().format("yyyy-MM-dd hh:mm:ss")); Date.prototype.format = functio ...
- C语言基本类型之long long int
大家都知道int在linux系统下默认是占4个字节,数值表示范围是:-2147483648~2147483647.即使是无符号unsigned int类型表示范围:0-4294967295,大约42亿 ...
- js中的继承
js中继承的实现方式很多,此处给出两种常用方式. <!DOCTYPE html> <html> <head> <meta charset='UTF-8'> ...
- 使用HTTP方式远程连接PowerShell
借助Windows PowerShell,我们可以像管理Linux一样使用命令行来远程管理Windows服务器.但是默认情况下,我们只能在域环境中使用PowerShell Remoting.如果是通过 ...