• UML图基础知识


    一、UML简述

    类是面向对象系统中最重要的构造块。类图显示了一组类、接口、协作以及他们之间的关系,通过类图,我们能够很好的掌握类与类之间的关系。

    首先给出一幅UML类图,此图来源于《大话设计模式》,其中讲的很好,感兴趣的可以去查看。然后细细查看图中的每个符号、每个元素,思考之间的关系。

    二、UML类图中包括常用的六种关系以及各自的表示形式

    从上图中我们可以很明显的发现六种关系及各自如何表示,

    1. 空心三角形+实线:继承关系

    2. 空心三角形+虚线:实现接口

    3. 空心菱形+实线箭头:聚合关系

    4. 实心菱形+实线箭头:组合关系

    5. 实线箭头:关联关系

    6. 虚线箭头:依赖关系

    注意事项一:

    图中“+”符号,一共有三种符号:

    "+":public

    "-":private

    "#":protected

    注意事项二:

    类:第一行写类名称。

    第二行声明属性及变量。

    第三行声明方法。

    类名称以斜体形式表示时,说明此类为抽象类。

    注意事项三:

    接口:

    第一行除了写接口名称之外,还要在最上层标注<<interface>>。

    第二行为空。

    第三行为方法声明。

    继承关系和实现接口这两者在面向对象编程中经常用到,都很熟悉,那么接下来介绍下后面四中关系。

    1. 聚合关系,是"has-a"的关系,表示一种弱的“拥有”,表示对象A可以包含对象B,但对象B可能并不是对象A的一部分。

    例如雁群和大雁之间的关系,雁群有很多只大雁组成,但大雁也可以不在雁群中。

    代码实现:

    1 class WideGooseAggregate{
    2     private WideGoose[] arrayWideGooses;
    3 }

    2. 组合关系,是"contains-a"的关系,表示一种很强的“拥有”,体现了部分和整体的关系,部分和整体的生命周期相同。

    例如鸟和翅膀之前的关系,翅膀是鸟的组成部分,两者之前的声明周期是相同的。

    代码表示:

    1 class Bird{
    2     private Wing mWing;
    3     public Bird(){
    4         mWing = new Wing();//初始化时,同时生成翅膀Wing,表示同时开始,也必然同时结束
    5     }
    6 }

    3. 关联关系:是一种结构化的关系,指一种对象和另一个对象有联系。给定有关联的两个类,可以从一个类的对象得到另一类的对象。

    例如企鹅和气候的关系。

    代码表示:

    1 class Penguin extends Bird
    2 {
    3     private Climate climate;//在企鹅Penguin对象中引用了气候Climate对象
    4 }

    4. 依赖关系:是一种使用关系,特定事物的改变有可能会影响到使用该事物的物体,反之不成立。

    例如动物要有生命力,需要氧气,水及食物等,所以动物依赖于氧气,水等,他们之间是以来关系。

    代码实现:

    1 abstract class Animal{
    2     public Metabolism(Oxygen oxygen,Water water){
    3 
    4     }
    5 }
  • 相关阅读:
    在IE和Firfox获取keycode
    using global variable in android extends application
    using Broadcast Receivers to listen outgoing call in android note
    help me!virtual keyboard issue
    using iscroll.js and iscroll jquery plugin in android webview to scroll div and ajax load data.
    javascript:jquery.history.js使用方法
    【CSS核心概念】弹性盒子布局
    【Canvas学习笔记】基础篇(二)
    【JS核心概念】数据类型以及判断方法
    【问题记录】ElementUI上传组件使用beforeupload钩子校验失败时的问题处理
  • 原文地址:https://www.cnblogs.com/calence/p/6844908.html
Copyright © 2020-2023  润新知