精华内容
下载资源
问答
  • uml组合
    2020-10-09 17:12:04

    UML中组合和聚合之浅谈

    聚合是一种特殊的关联,而组合又是一种特殊的聚合。

    聚合:”has“的关系 (偏向于死物的聚合,例如计算机和鼠标键盘的关系)
    组合:”contains“的关系 (偏向于动物、人,具有明显生命周期的主体的特殊聚合—组合)

    人和心脏的关系是什么?假设可以进行心脏移植,那么关系是聚合?还是组合?

    个人想法:我个人还是偏向于组合,如果将其归于聚合,那鸟和翅膀的关系也将变成聚合,所有万物生灵都是聚合了,所以聚合和组合还是要有明显的界限的,那便是两者的关系是否可以在一定的生命周期近似认为是不可分割的。

    更多相关内容
  • UML 组合与聚合

    千次阅读 2018-10-20 13:35:16
    每次写一次这个就要翻一次 PPT,这次干脆记录下来,便于以后查看。...UML 类图表示:一个整体可以拥有多个部分,一个部分属于一个整体: 组合 强语义的聚合,整体对象消失,部分对象也消失

    每次写一次这个就要翻一次 PPT,这次干脆记录下来,便于以后查看。

    聚合(aggregation)

    聚合 是一种特殊的 联系

    An Aggregation can be defined as:
    A special form of association that models a whole-part relationship between an aggregate (the whole) and its parts.

    • Aggregation is used to model a whole-part relationship between model elements. There are many examples of whole-part relationships: a Library contains Books, Departments are made up of Employees, a Computer is composed of a number of Devices. To model an aggregation, the aggregate (Department) has an aggregation association to its constituent parts (Employee).
    • A hollow diamond is attached to the end of an association path on the side of the aggregate (the whole) to indicate aggregation.
    • An aggregation relationship that has a multiplicity greater than one for the aggregate is called shared. Destroying the aggregate does not necessarily destroy the parts. By implication, a shared aggregation forms a graph or a tree with many roots. Shared aggregations are used when one instance is a part of two other instances. So, the same instance can participate in two different aggregations.

    An aggregation is an “is a part-of” relationship.

    UML 类图表示:一个整体可以拥有多个部分,一个部分属于一个整体:
    在这里插入图片描述

    组合

    强语义的聚合,整体对象消失,部分对象也消失

    在这里插入图片描述

    展开全文
  • UML类图六大关系组合

    2020-10-04 16:46:36
    UML本身是一套符号的规则,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和它们之间的关系,比如类、接口、实现、泛化、依赖(可以理解为使用)、组合、聚合等 使用UML来建模,常用的工具有...

     

    目录

    基本介绍

    依赖关系

     泛化关系(依赖关系的特例)

    实现关系(依赖关系的特例)

     关联关系

    单向一对一关系   

    双向一对一关系

    聚合关系

     组合关系


    基本介绍

    • UML-Unified modiling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果
    • UML本身是一套符号的规则,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和它们之间的关系,比如类、接口、实现、泛化、依赖(可以理解为使用)、组合、聚合等
    • 使用UML来建模,常用的工具有Rational Rose,也可以使用一些插件来建模

    可以使用 staruml_5.0_with_cm UML工具

     

    •  Dependency:表示依赖(使用)
    • Association:表示关联
    • Generalization:表示泛化(继承)
    • Aggregation:表示聚合(通过set的方式)
    • Composite:组合(耦合性比聚合要强,B b = new B())
    • Realization:表示实现

    UML图

    画UML图和写文章差不多,都是把自己的思想描述给他人看,关键在于思路和条理。

    (1)用例图(use case)

    (2)静态结构图:类图、对象图、包图、组件图、部署图

    (3)动态行为图: 交互图(时序图与协作图)、状态图、活动图

    依赖关系

    只要类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编译都通过不了。具体表现为:

    • 类中用到了对方
    • 如果是类的成员属性
    • 是方法的返回类型
    • 是方法接收的参数类型
    • 方法中使用到
    package uml.dependence;
    
    public class PersonServiceBean {
        private PersonDao personDao;
        public void save(Person person){}
        public IDCard getIDCard(Integer personid){
            return  null;
        }
        public void modify(){
            Department department = new Department();
        }
    
    }
    

     泛化关系(依赖关系的特例)

    •  泛化关系实际上就是继承关系
    • 如果A类继承了B类,我们就说A和B存在泛化关系

    实现关系(依赖关系的特例)

     关联关系

    类与类之间的联系,它是依赖关系的特例

    关联具有导航性:即双向关系或单向关系

    关系具有多重性:如"1"(表示有且仅有一个), "0..."(表示0个或者多个), "0,1"(表示0个或者多个), "n...m"(表示n到m个都可以),"m...*'(表示至少m个).

    单向一对一关系   

    public class Person{
    	private IDCard card;
    }
    public class IDCard{
    	
    }

    双向一对一关系

    public class Person{
    	private IDCard card;
    }
    public class IDCard{
    	private Person person;
    }

    聚合关系

    表示的是整体和部分的关系,整体与部分可以分开,聚合关系是关联关系的特例,所以它具有关联的导航性与多重性。如:一台电脑由键盘,显示器,鼠标等组成;组成电脑的各个配件是可以从电脑上分离出来的,使用带空心菱形的实现来表示;

    package aggregation;
    
    public class Computer {
        private Mouse mouse;
        private Monitor monitor;
    
        public Mouse getMouse() {
            return mouse;
        }
    
        public void setMouse(Mouse mouse) {
            this.mouse = mouse;
        }
    
        public Monitor getMonitor() {
            return monitor;
        }
    
        public void setMonitor(Monitor monitor) {
            this.monitor = monitor;
        }
    }
    class Mouse{
    
    }
    class Monitor{
    
    }

     组合关系

    如果Mouse、Monitor、Computer是不可分离的,则升级为组合关系,整体与部分不可以分开

    package composite;
    
    public class Computer {
        private Mouse mouse =new Mouse();
        private Monitor monitor = new Monitor();
    }
    
    class Mouse{
    
    }
    
    class Monitor{
    
    }

     Computer创建了的话,Mouse和Monitor也同时创建了,Computer销毁了,Mouse和Monitor也跟着被销毁,同生共死。

    再看一个案例:在程序中,我们定义实体类:Person与IDCard、Head,那么Head和Person就是组合,IDCard和Person就是聚合

    package composite.person;
    
    public class Person {
        private IDCard card;
        private Head head = new Head();
    }
    
    class IDCard{}
    class Head{}
    

     身份证和人是聚合关系,因为未成年的人可以没有身份证,但是人和头是组合关系。但是如果在程序中Person实体中定义了对IDCard进行级联删除,即删除Person时连同IDCard一起删除,那么IDCard和Person就是组合了。(肯定是在方法里体现出来的)

     

    展开全文
  • UML中各种关系的含义1. 什么是UML图?2. UML图中的各种关系2.1 依赖 1. 什么是UML图? UML-Unified Modeling Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义...

    1. 什么是UML图?

    UML-Unified Modeling Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。
    UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。这些虽简单却非常重要,在UML规则中相互联系和扩展。
    更多介绍点击链接了解:
    https://baike.baidu.com/item/UML%E5%9B%BE/6963758?fr=aladdin

    2. UML图中的各种关系含义

    2.1 依赖

    2.1.1 简单理解及画法

    这个依赖,通俗一点就是:人要依赖氧气、水、食物......才能生存,需要依赖氧气、水、食物......,人要依赖很多东西才能生存,如下图所示,氧气只是人依赖的一部分,如下图所示,画法如下图所示
    在这里插入图片描述

    在这里插入图片描述

    2.1.2 那么在UML中的依赖是怎样的呢?

    其实和上述所描述的差不多,如下图,类A依赖类B,那么类A中一定有B的存在,这个存在可能依赖关系在 Java 或 C++ 语言中体现为局部变量(函数参数等)、方法的参数或者对静态方法的调用,是组成类A的一部分。缺少了类B,类A就实现不了一部分功能了,如人缺少了手,就不能打游戏了,所以类A依赖类B
    依赖方要用虚线剪头指向被依赖的类,如下图所示
    在这里插入图片描述

    2.1.3 实战中UML图的画法和表现及相应的代码

    如在我写的一个项目中,类UserEventHandler依赖类LoginReqEv,类LoginReqEv是类UserEventHandler中一个函数的变量
    补充一下,-号在这个变量或者函数的前面表示它是这个类私有的(private),+号表示是公有的(pubulic),#表示是保护的(protected),UML类图,和代码图如下图所示
    在这里插入图片描述

    在这里插入图片描述

    2.2 关联

    2.2.1 简单理解,以及在UML中的画法

    A关联于B,则B体现为A的全局变量(成员变量),反之,关联分为双向关联和单向关联,被关联方被实心箭头所指,画法如下图所示,其中双向关联有两种画法,还有一种特殊的自关联,一般在单例模式中出现,我就不介绍了。
    在这里插入图片描述

    2.2.2 实战中UML图的画法和表现及相应的代码

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    2.3 聚合

    2.3.1 简单理解

    聚合的关系比关联要强,聚合和组合比较像,都有关联的特征;
    在聚合关系中,整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;
    组合的生命周期一样,才叫组合嘛!
    聚合换一种话说,成员类是整体类的一部分,即成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在
    比如有一个类A和一个类B,如果B是A的聚合(A是整体,B是部分),要满足如下特征:

    1. B是A的指针型成员变量
    2. A和B有具有各自的生命周期,当A虚构时,即生命周期结束时,B不受影响(整体解散时,部分不受影响)
    

    我查阅了很多资料,发现聚合是一个强关联,它肯定有关联的特征(成员变量中的指针型成员变量),也有自己的特征,各有各的生命周期。只有指针型成员变量才会有自己的独立分配内存空间,当整体不存在时,指针型成员变量还存在,但是有一种特殊情况,就是整体的虚构函数中,如果把指针型成员变量delete回收内存的话,指针型成员变量就随着整体的消逝而灭亡了,这就属于组合了,如下图1所示,这种情况是聚合。如下图2所示,这种情况是组合;

    所以是聚合还是组合,要看具体的代码是怎么写了
    

    在这里插入图片描述
    在这里插入图片描述

    2.3.2 实战中UML图的画法和表现及相应的代码

    画法,空心菱形加实心箭头,指向成员变量对应的类,代码如上图一所示,UML图的画法如下图所示
    在这里插入图片描述

    2.4 组合

    2.4.1 简单理解

    组合换一种话说,成员类是整体类的一部分,即成员对象是整体对象的一部分,但是成员对象可以脱离不可以脱离整体,整体消失时,部分也随之消失一般在整体虚构时,部分也虚构了(普通成员变量)或者回收内存了(指针成员变量)
    有以下特征:

    1. 属于整体的一部分,即为整体的成员变量
    2. 生命周期随着整体的虚构(消失)而消失,生命周期相同
    
    如果是指针成员变量的话,它在整体的其他函数方法中回收,或者没有在整体的虚构函数中回收,它就不属于组合了。
    

    2.4.2 实战中UML图的画法和表现及相应的代码

    画法,实心菱形加实心箭头,指向成员变量对应的类,图和相应的代码如下
    在这里插入图片描述

    在这里插入图片描述

    画图不易,觉得写得不错的,给个赞和收藏或者关注哦在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • UML-组合

    2016-10-06 16:38:51
    组合优于聚合 聚合UML模糊,其不精确...因此,不要在UML中费心使用聚合,相反,在适当的时候要使用组合组合,是一种很强的整体-部分聚合关系 某一时刻,部分的实例只属于一个组成实例 部分(Fingers)必须总是属于组成
  • UML类图--组合关系

    千次阅读 2018-10-26 01:33:15
    组合--Composition:组合关系是关联关系的一种,...UML展示: 箭头及指向 :带实心菱形的实线,菱形指向整体,箭头指向部分 代码体现: // 公司类 public class Company { private List<Department&...
  • UML类图说明.md

    2017-12-05 10:22:20
    UML类图详细说明. 讲解了类之间的各种关联关系和表达方式. 帮助理解UML类图
  • UML(3)——聚合与组合

    万次阅读 多人点赞 2019-06-17 19:18:34
    组合中部分和全体唇亡齿寒的关系,有部分的存在,全体才称之为全体,每个实例都是其固有特性; 聚合中部分的每个实例都不是全体的固有特性,可以有千千万万个部分实例,只要有一个部分的实例存在,组合聚合关系形成...
  • UML图中的聚合和组合

    千次阅读 2020-03-01 20:38:21
    一、基本概念 组合和聚合关系是容易混淆的概念,两者的差别在于 https://www.cnblogs.com/Alkane/articles/9650731.html
  • NULL 博文链接:https://newtime.iteye.com/blog/505170
  • UML 类图:聚合与组合区别

    千次阅读 2020-06-01 14:59:56
    组合中部分和全体唇亡齿寒的关系,有部分的存在,全体才称之为全体,每个实例都是其固有特性;聚合中部分的每个实例都不是全体的固有特性,可以有千千万万个部分实例,只要有一个部分的实例存在,聚合关系形成的全体...
  • 上一篇文章UML类图(上):类、继承、实现,讲了UML类图中类、继承、实现三种关系及其在UML类图中的画法,本文将接着上文的内容,继续讲讲对象之间的其他几种关系,主要就是关联、聚合、组合、依赖,下面开始文章的...
  • UML基础之组合与聚合关系

    千次阅读 2017-12-12 15:41:45
    UML基础之关系UML是统一建模语言([Unifried Modeling Language][6])的缩写。最初用于描述复杂的软件和非软件系统的行为。UML伴随着面向对象的概念和方法而生。它本身不是一种编程语言,但通过构建UML图能够帮助我们...
  • UML中的聚合与组合

    万次阅读 2018-03-24 17:01:44
    总结一下聚合和组合的关系。 组合关系(Composition):部分和整体之间具有相同的生命周期,当整体消亡后,部分也将消亡。就像大雁的翅膀和大雁是组合关系。代码实现时,部分类在整体类的构造函数中被构造,在析构...
  • 组合组合后的实体消失,则所有构成实体的部件都无意义,可以理解为不能独立存在 定义: 与聚合相比,组合描述的是这样的关联关系,部分离开整体后就没有实际意义了.所以我们说组合是一种很强的关联关系. 例子: 一个...
  • UML组合和聚集的区别

    千次阅读 2018-01-06 11:33:40
    组合(contains-a) 聚集(has-a); 组合关系表示整体和部分的关系比较强,而聚集表示整体和部分的关系比较弱;在组合关系中,代表整体的对象如果销毁了,那么代表部分对象也随之销毁;而在聚集中代表整体的对象如果...
  • 1、UML图 车的类图结构为<>,表示车是一个抽象类; 1、它有两个继承类:小汽车和自行车;它们之间的关系为实现关系,使用带空心箭头的虚线表示; 2、小汽车为与SUV之间也是继承关系,它们之间的关系为泛化关系...
  • UML概述及UML类图详解

    2022-04-19 22:29:39
    一、UML基础 UML介绍 UML分类 二、UML类图学习 在UML类图中表示一个具体类 在UML类图中表示抽象类 在UML类图中表示接口 在UML类图中表示包 在类图中表示关系 实现关系 泛化关系 ...聚合关系与组合关系
  • 说一句题外话,就是讨论一下为什么要去学习什么类图呢?要去理解这么多关系呢? 我觉得有如下两个作用吧: 第一,最实在的,程序员肯定少不了写设计文档,设计文档肯定包含类图;...聚合(has-a)和组合
  • 由于经常需要画uml图,在这里记录以下类与类之间的关系 类与类之间的j基本关系主要分为: 依赖(Dependency) 泛化(Generalization) 实现(Interface Realization) 关联(Association) 聚合(Aggregation) 组合...
  • 继承也叫作泛化关系,用于描述父子之间的关系,父类又称为基类或者超类,子类又称作派生类,在uml中,泛化关系用空心三角形的实线来表示 (1)普通继承关系 假如定义了一个person,student 以及teacher类 class ...
  • 1. UML概述 UML 即统一建模语言,是用来设计软件的可视化建模语言。 UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等9种图。 2. 类图概述 类图是显示...
  • UML-关联/聚合/组合

    2016-04-27 15:38:55
    聚合和组合都属于关联, 处于聚合关系的两个类生命周期不同步,则是聚合关系; 处于组合关系的两个类的生命周期同步。
  • UML关联和组合的最大区别?UML类图各种箭头含义代表什么? 作者:陈镇坤27 创建时间:2022年1月18日 文章目录一篇就够!UML关联和组合的最大区别?UML类图各种箭头含义代表什么?前言依赖关联聚合组合(强强强)泛化...
  • UML中类与类,已经类与接口,接口与接口的关系有: 泛化(generalization),关联(association),依赖(dependency),实现(realization)这几种。 泛化(generalization)关系时指一个类(子类、子接口)继承...
  • UML】结构图

    2022-03-05 17:26:45
    本文介绍UML结构图的概念
  • UML关系(泛化,实现,依赖,关联(聚合,组合))
  • 在学习面向对象设计时,类关系涉及依赖、关联、聚合、组合和泛化这五种关系,耦合性依次递增。关于耦合度,可以简单地理解为当一个类发生变更时,对其他类造成的影响程度,影响越小则耦合度越弱,影响越大耦合度越强...
  • 一、名词解释  1) 继承、实现 :类A继承于类B,那么A就有了B的属性和方法,类A实现了B接口,B接口本身只是规则和方法的定义,类A具体实现了。...继承、实现、依赖、关联、聚合、组合的联系与区别

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,699
精华内容 21,079
关键字:

uml组合