zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    软工实践总结
    Beta总结
    beta冲刺6/7
    beta冲刺5/7
    Beta冲刺4/7
    beta冲刺3/7
    beta冲刺2/7
    beta冲刺1/7
    答辩总结
    ES6中的块级作用域与函数声明
  • 原文地址:https://www.cnblogs.com/calence/p/6844908.html
Copyright © 2011-2022 走看看