StarUML类图相关——关联、聚合、组合、泛化、依赖、实现

在阅读设计模式相关的书籍,或者其他一些项目、相关博客等等,经常会遇到类图,它对于一个类的信息,如变量、方法及其可见性,类与类(接口)之间的继承关系、依赖关系、聚合关系、组合关系等,都可以比较形象得当地描述出来。这样有用的工具,还是需要稍微掌握了解下,也方便自己的应用和描述。因此就有了这篇搬运工文档

一、StarUML下载和入手

1、先捧出StarUML官网StarUML——The Open Source UML/MDA Platform

2、入手简单的UML开发可以参考:使用StarUML创建类图 ,这个教程可以满足平时记录的一些基本类图开发。

二、关联、聚合、组合、泛化、依赖、实现——概念介绍

在StarUML中有几个常见的概念


Association

DirectedAssociation

关联
Aggregation 聚合
Composition 组合
Generalization 泛化(继承)
Dependency 依赖
Realization 实现

如下是在StarUML中的样子。

1、关联——Association或者DirectedAssociation

参考UML Association

Association is a relationship between classifiers which is used to show that instances of classifiers could be either linked to each other or combined logically or physically into some aggregation.

关联用于描述类之间的一种关系,表示类之间有联系,或者在逻辑上、物理上有组合、聚合的关系。关联关系是一种比较宽泛的描述。对于聚合和组合,其实也是属于关联,只是从不同角度出发而已。

简单一点描述,把关联看成是has-a的泛化。从实际的场景来考虑,关联关系,可以有单向关联、双向关联、自关联等。

单向关联

单向关联表现为单向的关系,比如说,装13 has-a 爱疯X

双向关联

关联关系是双向的,常见的例子:顾客与(即购买)商品,学生与老师,课程与学生

  1. 顾客与(即购买)商品:顾客可以购买很多商品,而卖出去的商品可以关联到对应的顾客
  2. 学生与老师:一个学生可以有很多老师,一个老师也可以找到所教的学生
  3. 课程与学生:一门课程可以有多个学生选修,一个学生也可以选修多门课程。如下是栗子:

自关联

简单理解,就是内部持有该类本身的一个引用,常见的就是链表的结点

这里参考Java7——HashMap内部结点Entry的实现:

 1 /**
 2  * 参考Java7-HashMap源码内部实现
 3  */
 4 class Entry<K,V> implements Map.Entry<K,V> {
 5         final K key;
 6         V value;
 7         Entry<K,V> next;
 8         int hash;
 9         //...
10 }

2、聚合——Aggregation

体现的是整体与个体之间的关联关系,两者是可以分离的。没有强制的生死关系。例如:图书馆与书;电脑与键盘、鼠标;汽车与轮胎、发动机。个体是可以脱离整体单独存在的。

3、组合——Composition

在聚合关系之上的一种关联关系,是最强的关联关系,代表的是整体与部分的关系,具有统一的生存期,是不可分割一个整体存在。以人为例子,头部、心脏、手、脚等,都必须放在一起,共存亡。

4、泛化或者继承——Generalization

类的继承或者接口与接口之间的继承关系,常见到的概念就是“is-a”

5、依赖——Dependency

类的定义,包括其行为等,会受到另一个(些)类的影响。

  1. 作为(方法的)局部变量,
  2. 作为方法的形参
  3. 静态方法调用

例子1:以常见的Controller、Servie、DAO为例,请求转发到Controller时,依赖与具体的Servie实现,而Servie则是依赖DAO层实现数据库交互。

例子2:Maven的pom.xml依赖配置,就是常见的Dependency

6、实现——Realization

Java中常见的就是实现接口。例如,List接口的几个常见实现类:ArrayList、LinkedList、Vector。

以上uml类图参考我的github链接:wpbxin-github

参考1:使用StarUML创建类图

参考2:类与类之间的关系-依赖,关联,聚合,组合,继承泛化的区别

参考3:UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

参考4:关联、组合、聚合、依赖关系比较

参考5:UML类图(上):类、继承和实现

参考6:UML类图(下):关联、聚合、组合、依赖

原文地址:https://www.cnblogs.com/wpbxin/p/8831162.html

时间: 2024-11-08 13:17:18

StarUML类图相关——关联、聚合、组合、泛化、依赖、实现的相关文章

UML类图及依赖,泛化,关联,聚合,组合,实现

UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务.一个类可以有多种职责,设计得好的类一般只有一种职责,在定义类的时候,将类的职责分解成为类的属性和操作(即方法). 3) 类的属性即类的数据职责,类的操作即类的行为职责 一.依赖关系(Dependence) 依

UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务.一个类可以有多种职责,设计得好的类一般只有一种职责,在定义类的时候,将类的职责分解成为类的属性和操作(即方法). 3) 类的属性即类的数据职责,类的操作即类的行为职责 一.依赖关系(Dependence) 依赖关系(Dependence):假设A类的变化引起了B类的变

UML关系(泛化,实现,依赖,关联(聚合,组合))

UML的构造快包含3种: (1) 事物(4种):结构事物,行为事物,分组事物,注释事物 (2) 关系(4种):泛化关系,实现关系,依赖关系,关联关系 (3) 图(10种):用例图,类图,对象图,包图,组件图,部署图,状态图,活动图,序列图,协作图 事物是对模型中最具代表性的成分的抽象:关系把事物结合在一起:图聚集了相关的事物. (2) 关系(4种) UML 中类与类, 类与接口, 接口与接口这间的关系有: 泛化(generalization) 关系, 关联(association)关系( 关联,

UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html http://sundensky.blog.163.com/blog/static/7728873420109299167434/ 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系:在Java中此类关系

【UML】UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系:在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性:  实现 指的是一个class类实现interface接口(可以是多个)的

UML中常见关系详解(泛化、实现、依赖、关联、组合、聚合)

UML中类与类,已经类与接口,接口与接口的关系有:泛化(generalization),关联(association),依赖(dependency),实现(realization)这几种. 泛化(generalization)关系时指一个类(子类.子接口)继承另外一个类(称为父类.父接口)的功能,并可以增加它自己新功能的能力,继承是类与类或者接口与接口最常见的关系,在Java中通过关键字extends来表示. 实现(realization)是指一个class实现interface接口(一个或者多

面向对象——对继承、关联、聚合、组合、依赖的理解

例子.理解不当之处,还请指正 1.继承(泛化) 关系:a 继承自b,a is b 就像图中所画,Benz,Audi,Lamborghini都继承自Car,都有轮子(wheel),都可以前进,与停止. Benz is a car. Audi is a car. Lamborghini is a car. 2.关联 关系:a has b 3.聚合 关系:a has b 整体部分不负责局部对象的销毁,二者的生命周期没有关联 4.组合 关系:a has b 整体部分负责局部对象的销毁 5.依赖 关系:a

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

[.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是他们的主要用途简介: 1.用例图:对系统的使用方式分类. 2.类图:显示类和它们的相互关系. 3.对象图:只显示对象及它们的相互关系. 4.活动图:显示人或对象的活动,其方式类似于流程

Visual Studio 2015中设计UML类图

1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是他们的主要用途简介: 1.用例图:对系统的使用方式分类. 2.类图:显示类和它们的相互关系. 3.对象图:只显示对象及它们的相互关系. 4.活动图:显示人或对象的活动,其方式类似于流程图. 5.状态机图:显示生命周期比较有趣或复杂的对象的各种状态. 6.通信图:显示在某种情形下对象之间发送的消息.