作为一个程序员,掌握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类图归纳的更多相关文章

  1. UML类图的6大关系

    <小酌重构系列>已经完成了大约1/3了,在这些文章中,我使用了一些简单的类图来描述重构策略.在之后的文章中,我可能会借助稍微复杂一些的UML类图来介绍.但是在此之前,我觉得有必要先介绍一下 ...

  2. 四步轻松实现用Visio画UML类图

    本节和大家一起学习一下用Visio画UML类图的方法,主要有四个步骤,这里和大家分享一下,相信通过本节的学习,你对Visio画UML类图的步骤一定会有所了解. 用Visio画UML类图 对于画类图的工 ...

  3. php设计模式——UML类图

    前言 用php开发两年多了,准备也写一下平时常用的设计模式,都是基于自己的实践经验,当然,用设计模式之前首先要看懂设计模式,因此这里首先讲解一下UML类图.通过UML类图,能更好的和大家交流,也能很容 ...

  4. UML类图(下):关联、聚合、组合、依赖

    前言 上一篇文章UML类图(上):类.继承.实现,讲了UML类图中类.继承.实现三种关系及其在UML类图中的画法,本文将接着上文的内容,继续讲讲对象之间的其他几种关系,主要就是关联.聚合.组合.依赖, ...

  5. UML类图(上):类、继承和实现

    面向对象设计 对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做.伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现.如果要自己设计,无论是给自己看,还是给别人看 ...

  6. UML类图几种关系的总结

    在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...

  7. UML类图关系全面剖析

    UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1- ...

  8. UML类图关系--继承(泛化)、实现、关联、聚合、组合、依赖

    在UML类图中,常见的有以下几种关系:  泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composi ...

  9. [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图

    [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统 ...

随机推荐

  1. 我参加了51CTO博客大赛,求投票!

    我是张传波,也是Fireball(火球). 我参加了51CTO博客大赛,距离网络投票截止没有几天了,求投票!我的参赛链接:http://blog.51cto.com/contest2013/82313 ...

  2. WPF学习之路(十二)控件(Content控件)

    Label Label相比TextBlock功能并不强大,但是支持键盘快捷键的方式获得焦点 <StackPanel> <Label Target="{Binding Ele ...

  3. VC对ScrollView的调整

    VC对ScrollView的调整 automaticallyAdjustsScrollViewInsets automaticallyAdjustsScrollViewInsets是ViewContr ...

  4. mysql自增列导致主键重复问题分析。。。

    前几天开发童鞋反馈一个利用load data infile命令导入数据主键冲突的问题,分析后确定这个问题可能是mysql的一个bug,这里提出来给大家分享下.以免以后有童鞋遇到类似问题百思不得其解,难 ...

  5. [转]CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  6. 检测PC端和移动端的方法之一

    window.mobileCheck = function() { var check = false; (function(a){if(/(android|bb\d+|meego).+mobile| ...

  7. coursera机器学习笔记-多元线性回归,normal equation

    #对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...

  8. c# bass入门学习

    据说bass挺好用的,所以又搞了个音乐播放器 这是参考了别人的bass教学结合自己的理解写的bass操作类 public class BassHelper { private static BassH ...

  9. 10个开源的PHP网站内容管理系统

    1. DEDE -这是一款国内开源的cms,作者是一个个人,能做出如此功能的cms,是相当不错的.2007版功能十分强大,希望能改善之前数据量一大,更新静态页就很慢的缺点.因为开源,有较多的玩家和拥护 ...

  10. 关于iOS构建版本提交iTunes后,一直不出现,没加号的解决方案

    最近第一次遇到,正常打包,上传iTunes App Store,都能正常upload. 也可能是因为刚升了Xcode 8 的缘故,莫名其妙的小问题... 描述如下: 如果进iTunes的活动界面,也能 ...