作为一个程序员,掌握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. Lojic X

    媒体 赫兹 电话  500HZ 网络数据 8000HZ CD  44100HZ  电脑 48000HZ DVD 96000HZ 最大值(蓝光) 192000HZ   横向———————— 清晰度   ...

  2. Java并发之死锁实例

    package com.thread.test.thread; /** * Created by windwant on 2016/6/3. */ public class MyTestDeadLoc ...

  3. zookeeper barrier和queue应用实例

    package org.windwant.zookeeper; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper. ...

  4. MySQL [Warning]: IP address 'xxxx' could not be resolved: Name or service not known

    MySQL的error log 出现大量的 DNS反解析错误. DNS解析是指,将 域名解析成ip地址: DNS反解析是指,将IP地址反解析成域名: Version: MySQL Community ...

  5. SQL Server中字符串转化为GUID的标量函数实现

        还是工作中遇到的需求,有时候和外部的系统对接,进行数据的核对功能,外部的系统有时候主键字段列数据类是UNIQUEIDENTIFER(GUID)类型的字符串格式,去除了GUID格式中的分隔符“- ...

  6. Error while performing database login with the sqljdbc driver:Unable to create connection. Check your URL.

    从微软官网下载jdbc驱动包sqljdbc4,运行sqljdbc_4.0.2206.100_chs.exe,将驱动包解压到了Microsoft JDBC Driver 4.0 for SQL Serv ...

  7. MySQL Database on Azure

    在国际版的Microsoft Azure上,MySQL服务是与ClearDB合作运营的.由于ClearDB无法在中国地区提供服务,因此微软中国的研发团队开发了专门面向中国市场的MySQL Databa ...

  8. label与input间距的小问题

    先码后文 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  9. position:absolute/relative/fixed小结

    1.绝对定位:position:absolute; 当一个div块的位置被定义为绝对定位absolute时,也就意味着它失去了文档流的位置,后面的文档流会紧跟着补上来接替它的位置.如果上下左右的绝对偏 ...

  10. Seajs是什么及sea.js 由来,特点以及优势

    Seajs是什么及sea.js 由来,特点以及优势 这篇文章主要介绍了Seajs的相关知识和和学习心得,适合刚接触SeaJS的同学,需要的朋友可以参考下,有更好的新手教程或文档,欢迎推荐.分享   1 ...