• UML类图中的几种关系总结


           UML类图,描写叙述对象和类之间相互关系的方式包含:依赖(Dependency)、关联(Association)、聚合(Aggregation)、组合(Composition)、泛化(Generalization)、实现(Realization)等。

    依赖(Dependency)

    A依赖B,表示A会使用B的行为或属性,但B不能使用A的行为、属性,那么A和B的关系是依赖关系。
    uml中用带箭头的虚线表示Dependency关系,箭头指向被依赖元素

    演示样例代码 : 
    class B {
    	public void doSth() {
    		System.out.println("do sth in class b.");
    	}
    }
    
    //
    class A {
    	public void doSthInA(B b) {
    		b.doSth();
    		// others
    	}
    }

    泛化(Generalization)

    就是通常所说的继承关系,不必多解释了。uml中用带空心箭头的实线线表示Generalization关系,箭头指向被继承的类。

      

    // 形状
    class Shape {
    	
    }
    
    // 方形继承自Shape
    class Square extends Shape{
    	
    }

    实现(Realize)

    A定义一个约定,B实现这个约定,则B和A的关系是实现,B实现A。这个关系最经常使用于接口。因此A代表接口,
    B代表实现接口A的详细类。uml中用空心箭头和虚线表示Realize关系。箭头指向定义约定(A)的元素。


    演示样例代码  :
    public interface Runnable {
        public abstract void run();
    }
    
    // 实现Runnable接口
    public class Thread implements Runnable {
            @Override
        public void run() {
            // do sth
        }
    }

    关联(Association)

    元素间的结构化关系,是一种弱关系,被关联的元素间通常能够独立存在。uml中用实线(单向关联带箭头)
    表示Association关系。箭头指向被依赖元素。




       每一个人都能够有书籍。可是书籍与人之间并不存在强关系,两者能够各自独立。

    演示样例代码 : 

    class Book {
    	
    }
    
    // 
    class People {
    	// 学生能够独立于老师而存在
    	List<Book> mBooks = new ArrayList<Book>();
    }

    聚合(Aggregation)

    聚合是关联关系的一种特例,是强的关联关系;关联和聚会在语义上无法区分,仅仅能依据考察详细的逻辑来加以区分。
    聚合关系表示部分和总体的关系 ( 关联仅仅是表示单纯的依赖 ),部分能够独立于总体而存在。

    UML中用带空心菱形头的实线

    表示Aggregation关系,菱形头指向总体


        车轮属于车的一部分。但车轮能够独立于车存在。

    代码演示样例 :
    class Wheel {
    }
    
    class Car {
    	List<Wheel> mWheels = new ArrayList<Wheel>();
    }

    组合(Composition)

    组合是聚合关系的变种,表示元两者之间具有更强的聚合关系,它通常要求总体代表部分的生命周期

    假设是组合关系,部分(个体)不能独立于总体而存在。

    UML中用带实心菱形头的实线表示Composition关系。

    菱形头指向总体


       
       手是人体的一部分,可是手不能独立于人体而存在。
    class Hand {
    
    }
    
    class People {
    	List<Hand> mHands = new ArrayList<Hand>();
    }

        当中依赖(Dependency)的关系最弱,而关联(Association)。聚合(Aggregation),组合(Composition)表示的关系依次增强。换言之关联,聚合,组合都是依赖关系的一种,聚合是表明对象之间的总体与部分关系的关联。而组合是表明总体与部分之间有同样生命周期关系的聚合。


    各种关系的强弱顺序:

            泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 


    參考推荐:

    UML类图几种关系的总结

    UML类图符号 各种关系说明以及举例

    UML建模免费工具


  • 相关阅读:
    泛微云桥e-Bridge 目录遍历,任意文件读取
    (CVE-2020-8209)XenMobile-控制台存在任意文件读取漏洞
    selenium 使用初
    将HTML文件转换为MD文件
    Python对word文档进行操作
    使用java安装jar包出错,提示不是有效的JDK java主目录
    Windows server 2012安装VM tools异常解决办法
    ifconfig 命令,改变主机名,改DNS hosts、关闭selinux firewalld netfilter 、防火墙iptables规则
    iostat iotop 查看硬盘的读写、 free 查看内存的命令 、netstat 命令查看网络、tcpdump 命令
    使用w uptime vmstat top sar nload 等命令查看系统负载
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6962240.html
Copyright © 2020-2023  润新知