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. python 获取文件目录位置

    test.py import os print('***获取当前目录***') print(os.getcwd()) print(os.path.abspath(os.path.dirname(__f ...

  2. 一起用ipython

    安装 安装python2版本的软件包就用命令 pip install ipython 安装python3版本对应的软件包就用命令 pip3 install ipython 进入了ipython,ipy ...

  3. SpringMVC使用Swagger

    Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服 ...

  4. 第三方API使用的好习惯

    1自己封装API接口 有些不很稳定的API接口,最好还是自己封装隔离后再使用,否则哪天它一改接口,那我得到处替换了 比如融云的群组,聊天室

  5. double 类型转化为Integer

    (1)把double先转化成int类型 Double reseve3=Double.parseDouble(bddet[0].getReserve3()); int b=reseve3.intValu ...

  6. Flask之SQLAlchemy,flask_session以及蓝图

    数据库操作 ORM ORM 全拼 Object-Relation Mapping,中文意为 对象-关系映射.主要实现模型对象到关系数据库数据的映射 优点 : 只需要面向对象编程, 不需要面向数据库编写 ...

  7. Win10系列:C#应用控件基础18

    WebView控件 使用WebView控件可以在应用中添加一个简易的网页浏览器窗口,将指定地址的网页内容显示出来,并可以通过WebView控件所提供的方法.属性及事件,实现如页面导航.HTML文本解析 ...

  8. golang 报错illegal rune literal

    记录一下,今天运行一端代码遇到这个报错"illegal rune literal",代码如下: func main() { http.HandleFunc('/login', lo ...

  9. 【转】RAID 技术发展综述

    原文地址:https://blog.csdn.net/liuaigui/article/details/4581970   摘要 :现代企业信息化水平不断提高,数据已经取代计算成为了信息计算的中心.这 ...

  10. ActiveMQ使用介绍及实例

    上一篇讲了rabbitmq的使用以及demo,activemq的思路也与之有相似的地方. activemq是基于Java实现的.activemq没有rabbitmq那么多的路由规则,其通信方式只有两种 ...