zoukankan      html  css  js  c++  java
  • 类的关系

    继承

    UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。

    实现

    在UML类图设计中,实现用一条带空心三角箭头的虚线表示,从类指向实现的接口。

    依赖

    简单的理解,依赖就是一个类A使用到了另一个类B

    这种使用关系是偶然的、临时性的、非常弱的

    类B的变化会影响到类A

    代码层面,表现为类B作为参数被类A在某个method方法中使用

    UML类图设计中,依赖关系用由类A指向类B的带箭头虚线表示

    class A {
    	public void method(依赖B b) {
    	}
    }
    class 依赖B {
    }
    

    关联

    关联是语义级别的一种强依赖关系。

    关联可以是单向、双向的。

    表现在代码层面,为被关联类B以类的属性形式出现在关联类A中。

    UML类图设计中,关联关系用由关联类A指向被关联类B的带箭头实线表示,在关联的两端可以标注关联双方的角色和多重性标记。

    class A {
    	private 关联B myVar;
    	public 关联B getMyVar() {
    		return myVar;
    	}
    	public void setMyVar(关联B myVar) {
    		this.myVar = myVar;
    	}
    }
    class 关联B {
    }
    

    组合(合成)

    组合是关联关系的一种特例。
    体现的是一种contains-a的关系。
    也称为“强聚合”
    表现在代码层面,和关联关系是一致的,只能从语义级别来区分。
    UML类图设计中,组合关系以“实心菱形加实线”箭头表示。

    组合示例:人由大脑、心脏等组成。

    聚合

    聚合是关联关系的一种特例。
    是整体与部分的关系,即has-a的关系。
    表现在代码层面,和关联关系是一致的,只能从语义级别来区分。
    UML类图设计中,聚合关系以空心菱形加实线箭头表示。

    聚合示例:孩子和家庭;人和人群。

    class A {
    	public void method(依赖 _依赖) {
    	}
    	private 关联 _强依赖;
    	private 组合 _关联的特例_contains_a;
    	private 聚合 _关联的特例_has_a;
    	// getters/setters 略
    }
    class 依赖 {
    }
    class 关联 {
    }
    class 组合 {
    }
    class 聚合 {
    }
    
  • 相关阅读:
    PHP中的__clone()
    如何使用windows的计划任务?计划任务?
    (mysql)触发器、事件、事务、函数
    mysql子查询 exists,not exists,all和any
    MySQL 获得当前日期时间时间戳 函数
    JavaScript从数组中删除指定值元素的方法
    monorepo仓库管理方式探秘
    浏览器和Node 中的Event Loop
    Promise原理探究及实现
    yarn or npm 版本固化如何选择
  • 原文地址:https://www.cnblogs.com/tigerlion/p/10662567.html
Copyright © 2011-2022 走看看