概述

设计模式中常常使用UML来表示类与类,类与接口之间的关系,UML类图是设计模式入门必备的技能,感觉各种关系比较多,这里做一下总结。

类与接口的表示

类与接口通常是一个矩形框表示,一般分为3层,第一层显示类的名称,如果是抽象类则类名用斜体表示。第二层代表类的特性,通常是字段和属性,第三层是类的操作,通常表现为方法或者行为,其中+表示public,-表示private,#表示protect

常用关系

  • 继承

    继承关系用空心三角形+实线来表示,在java中体现为extends关键字

  • 实现接口

    实现接口用空闲三角形+虚线,在java中体现为implements关键字

  • 聚合关系

    聚合关系表现为一种弱拥有关系,体现为A对象可以包含B对象,但是B对象不是A对象的一部分。

    实现用空心菱形+实线;

    在java中可以体现为,一个类的数组或者通过setter或者getter方式注入到整体对象中

//数组对象形式
public class wideGooseAggregate{
    private WideGoose[] arrayWideGoose;//雁群类中有大雁的数组对象
}
//注入方式存在
public class Car {
        private Engine engine;  

        //构造注入
        public Car(Engine engine) {
            this.engine = engine;
        }  

        //设值注入
    public void setEngine(Engine engine) {
        this.engine = engine;
    }
    ……
    }  

    public class Engine {
        ……
    }

  • 组合关系

    组合关系也表示整体和部分之间的关系,体现出的是一种强拥有关系,即整体可以控制成员对象的生命周期,整体对象一旦不存在成员对象也将不存在。通常体现为成员对象在整体类构造方法中被new出来。

    用实心菱形+实线表示。
public class Bird{
    private Wing wing;
    public Bird(){
    wing = new Wing();
    }
}

  • 依赖关系

依赖关系,顾名思义,产生了依赖就会出现这个类的改变会带动另一个类的变化,一般体现在某个类的方法使用另一个类的对象作为参数。

用虚线+箭头表示。

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

  • 关联关系

    一种结构化关系,用于表示一类对象和另一类对象有联系。在Java中通常表现为一个类的对象作为一个类的成员变量,即表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量。

    用实线表示
public class Penguin{
    private Climate climate;
    ……
}

参考:

《大话设计模式》

http://blog.csdn.net/lovelion/article/details/7842898

UML类图简介的更多相关文章

  1. 18、面向对象基本原则及UML类图简介

    18.1.面向对象基本原则 18.1.1.面向抽象原则 抽象类特点: a.抽象类中可以有abstract方法,也可以有非abstract方法. b.抽象类不能用new运算符创建对象. c.如果一个非抽 ...

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

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

  3. UML类图的6大关系

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

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

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

  5. 设计模式之序章-UML类图那点事儿

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

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

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

  7. UML——在Visual Studio 2013/2015中设计UML类图

    1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...

  8. 图解六大UML类图关系

    在学习UML类图的过程中,UML类图关系是必须要掌握的问题,UML定义的关系主要有六种:依赖.类属.关联.实现.聚合和组合.下面对其定义和表示方法逐一说明. UML类图关系简介 依赖(Dependen ...

  9. Visual Studio 2015中设计UML类图

    1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...

随机推荐

  1. redhat7 上安装dummynet

    更多请访问 http://www.webpersonaldeveloper.cn 摘要: 在redhat 上部署dummynet 需要将ipfw 编译为内核模块,而ipfw需要调用linux kern ...

  2. 【Netty源码分析】Netty服务端bind端口过程

    这一篇博客我们介绍一下Netty服务端绑定端口的过程,我们通过跟踪代码一直到NIO原生绑定端口的操作. 绑定端口操作 ChannelFuture future = serverBootstrap.bi ...

  3. FFmpeg源代码结构图 - 解码

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...

  4. UNIX环境高级编程——创建孤儿进程

    /* 创建孤儿进程 父进程终止后,向子进程发送挂断信号,又接着发送继续信号. */ #include <stdio.h> #include <stdlib.h> #includ ...

  5. OpenMP并行化实例----Mandelbrot集合并行化计算

    在理想情况下,编译器使用自动并行化能够管理一切事务,使用OpenMP指令的一个优点是将并行性和算法分离,阅读代码时候无需考虑并行化是如何实现的.当然for循环是可以并行化处理的天然材料,满足一些约束的 ...

  6. 【Netty源码学习】EventLoopGroup

    在上一篇博客[Netty源码解析]入门示例中我们介绍了一个Netty入门的示例代码,接下来的博客我们会分析一下整个demo工程运行过程的运行机制. 无论在Netty应用的客户端还是服务端都首先会初始化 ...

  7. Docker教程:dokcer machine的概念和安装

    http://blog.csdn.net/pipisorry/article/details/50920982 Docker machine介绍 做为Docker容器集群管理三剑客之一的Docker ...

  8. Swift基础之显示波纹样式

    最近项目用到了蓝牙连接,搜索设备的内容,其中需要搜索过程中出现波纹的动画效果,在这里将项目中OC语言编写的这种动画效果,转换成Swift编写,下面简单介绍说明一下代码. 这里用到了两种方法实现波纹效果 ...

  9. iOS中 通知中心Text (实例)

    指定根视图 self.window.rootViewController = [RootViewController new]; 方法实现: #import "RootViewControl ...

  10. UML 类图. 对象图. 接口图. 用例图 .包,参与者. 依赖关系. 泛化/继承关系. 关联关系 .聚合/聚集关系. 实现关系 组合关系。

    结构元素 结构元素包括,类,对象,接口,用例,参与者. 类图 类图图示      类图是UML中最基本的元素了吧?根据OO的思想"天下一切皆对象",而类是对象的抽象.      左 ...