2016-06-07 22:46:16

下面简单介绍UML类图:(图是截取的,大家可以用UML工具去画)

1、描述类的类图

类:Person

属性:name   age   sex

访问权限:-  表示私有的private   +:表示公共的public  #:表示protected

方法: getName():String   setName(name:String)   getAge():int   setAge(age:int)   getSex():String   setSex(sex:String)

方法最后跟的是返回类型,没有的话返回类型是void,例如getName()返回类型是String,setName(name:String)返回类型是void

其中setName(name:String),setAge(age:int),setSex(sex:String)还包含参数名和参数类型

2、抽象类

可以看出类名Car是斜体,表示类是抽象的;方法名driver也是斜体,表示方法也是抽象的

3、接口

interface IFly{
void Fly();
}

interface ILanguage{
void Speak();
}

4、对象

类图中的关系:

1、继承或泛化 (Generalization)

注意是用空心三角形+实线连接

2、实现关系(Realization)

注意是用空心三角形+虚线连接

3、关联关系 (association)

注意是用实线箭头连接,更准确的说这是有方向的关联(DirectedAssociation),关联(Association)是用实线表示,无箭头

关联关系:一个类能够“看到”另一个类中的属性和方法:司机开车需要知道车子的信息,Driver能看到car的,Driver类中持有了Car类的引用;企鹅每年长途跋涉,需要知道气候变化,在企鹅penguin中引用到气候Climate对象。

4、聚合关系 (aggregation)

注意是用空心菱形+实线(箭头)连接

聚合关系比关联关系强些,是整体与个体之间的关系,表示了一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分

车子要有发动机和轮胎,而且一个车不会只有一个轮胎,所以Car引用Tire时用到了数组

5、合成关系(Composition)

注意是用实心菱形+实线(箭头)连接

合成关系比聚合关系更强,是一种强的拥有关系,体现了严格的整体与部分的关系,它要求普通聚合关系中代表整体的对象负责代表部分的对象的生命周期,或者说它们的生命周期一样。

class Bird{
private Wing wing;
public Bird(){
wing=new Wing();
//在鸟Bird类中,初始化时,实例化翅膀Wing,他们之间同时生成
}
}

6、依赖关系 (Dependency)

注意是用虚线箭头表示

依赖总是单向的,表示的是一个类(A)依赖于另一个类(B),类B作为参数被类A在某个method方法中使用,可以看到在Man类的buy方法里有car和house的参数。

一个更形象的例子是动物依赖于氧气和水

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

}
}

java设计模式--UML类图的更多相关文章

  1. 23种经典设计模式UML类图汇总

    在这里23种经典设计模式UML类图汇总       创建型模式 1.FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基 ...

  2. Java 大黑话讲解设计模式 -- UML类图

    目录 1.啥是UML类图? 2.UML类图有啥用? 3.正式理解UML类图 4.使用idea画第一个UML类图 5.类之间的关系图[必须牢记] 6.类之间的关系 6.1.依赖 6.2.泛化 6.3.实 ...

  3. 设计模式-UML类图基础

    设计模式之序-UML类图那点事儿 打14年年底就像写那么一个系列,用于讲设计模式的,代码基于JAVA语言,最早接触设计模式是大一还是大二来着,那时候网上有人给推荐书,其中就有设计模式,当时给我推荐的书 ...

  4. 设计模式-UML类图的各符号含义(转)

    UML类图的各符号含义 类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形.由这些基本的图形进行组合构成了类图的基本符号.这里要注意这几个符号的顺序,代表了类与类之间关系 ...

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

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

  6. Python设计模式 - UML - 类图(Class Diagram)

    简介 类图是面向对象分析和设计的核心,用来描述系统各个模块中类与类之间.接口与接口之间.类与接口之间的关系,以及每个类的属性.操作等特性,一般在详细设计过程中实施. 类图本身就是现实世界的抽象,是对系 ...

  7. 设计模式--UML类图简介

    UML:Unified Modelling Language是一种统一建模语言(英语:Unified Modeling Language,缩写 UML)是非专利的第三代建模和规约语言. “+”表示pu ...

  8. 在这里23种经典设计模式UML类图汇总

    创建型模式 1.FACTORY-追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说"来四个鸡翅"就 ...

  9. 设计模式UML类图基础

    1.聚合 聚合(aggregation)表示一种弱的"拥有"关系,体现的是A对象可以包含B对象,但是B对象不是A对象的一部分.如大雁是群居动物,每只大雁都属于一个雁群,一个雁群可以 ...

随机推荐

  1. Pandas 基础(8) - 用 concat 组合 dataframe

    以各个城市的天气为例, 先准备下面的数据: 印度天气的相关信息: import pandas as pd india_weather = pd.DataFrame({ 'city': ['mumbai ...

  2. python requests用法总结

    requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到.可以说,Requests 完全满足如今网络的需求 本文全部来源于官方文档 http://docs ...

  3. constructor __proto__ prototype

    js里面constructor __proto__  prototype这三个属性比较难理解,在重点研究这三个属性后,在这里做一个笔记, constructor:构造器,每个对象都有这个属性,他指向构 ...

  4. php添加pdo_mysql.so的扩展

    1. 首先进入你下载的php的安装包里找到pdo_mysql文件夹. /usr/local/php-/ext/pdo_mysql ps:有些教程说从http://pecl.php.net/这个网站上下 ...

  5. Web 安全漏洞之 XSS 攻击

    什么是 XSS 攻击 XSS(Cross-Site Scripting)又称跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行.XSS是一种经常出现在 Web 应用程序中的计算机安全漏洞,是由于 ...

  6. RandomAccessFile多线程下载

    public class DownloadServer { ; private static String fileUrl = "https://dldir1.qq.com/qqtv/mac ...

  7. zabbix3.4.7官方解释触发器

    函数   描述 参数 说明 abschange   最近获取值与之前获取值差的绝对值.   支持值的类型: float, int, str, text, log 例如: (最近获取值;之前获取值=ab ...

  8. JavaScript下实现交换数组元素上下移动例子

    // 交换数组元素    var swapItems = function(arr, index1, index2) {        arr[index1] = arr.splice(index2, ...

  9. react-router解决锚点跳转问题

    添加一个onClick方法.onClick方法传入一个锚点的id,然后用下面的函数来找到锚点并跳转到锚点. scrollToAnchor = (anchorName) => { if (anch ...

  10. python全栈开发笔记---------数据类型---字典方法

    def clear(self) 清空字典里所有元素 # info = { # "k1":18, # "k2":True, # "k3":[ ...