uml

UML中类之间的几种关系

跟風遠走 提交于 2019-12-30 05:42:51
类之间可能存在以下几种关系:关联(association)、依赖(dependency)、聚合(Aggregation,也有的称聚集)、组合(Composition)、泛化(generalization,也有的称继承)、实现(Realization)。 关联是指两个类之间存在某种特定的对应关系,例如客户和订单,一个订单只能属于某个客户,一个客户可能会有多张订单。根据方向,分为单向和双向。根据对应的数量分为一对一、一对多、多对多等。对应的UML图如下所示: 关联关系用实线+箭头表示。上图显示Customer和Order是双向一对多关联关系。对应的Java代码如下所示: class Customer { private Integer id; private String name; private Set<Order> orders; public Set<Order> getOrders() { return orders; } public void setOrders(Set<Order> orders) { this.orders = orders; } } class Order { private Integer id; private float money; private Customer customer; public Customer getCustomer(

UML类图几种关系的总结

点点圈 提交于 2019-12-30 05:42:18
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。 【箭头指向】:带三角箭头的实线,箭头指向父类 2. 实现(Realization) 【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现. 【箭头指向】:带三角箭头的虚线,箭头指向接口 3. 关联(Association) 【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。 【代码体现】:成员变量 【箭头及指向】:带普通箭头的实心线,指向被拥有者 上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。 下图为自身关联: 4. 聚合(Aggregation) 【聚合关系】:是整体与部分的关系

UML类图画法及其之间关系

谁说我不能喝 提交于 2019-12-30 05:41:37
1、泛化又名继承(Generalization),带空心箭头的实线表示,箭头指向父类 2、实现(Realization),带空心的虚线表示 3、关联(Association),类与类之间的关联,它使一个类知道另一个类的属性和方法,指明事务之间的联系,如:老师和学生,妻子和丈夫。用普通箭头实线表示 3、聚合(Aggregation),部分可以离开整体而独立存在。用带空心菱形的实线表示 4、组合(Composition),同生共死,如:人和心脏。实心菱形的实线表示 5、依赖(Dependency),元素A的变化会影响B的变化,说明B依赖于A。普通箭头虚线表示 各种关系的强弱顺序: 继承=实现>组合>聚合>关联>依赖 封装性: public表示"+" private表示"-" protected表示"#" 来源: https://www.cnblogs.com/hgc-bky/p/5866053.html

看懂UML类图和时序图

北城余情 提交于 2019-12-30 05:40:56
UML在软件工程中使用较多,通过使用UML图可以较清楚地表示软件的架构关系,这里介绍一下UML中 比较重要的两种图:类图和时序图。 类图 类图是用来表示类之间的关系的,类与类之间的关系可以用以下六种关系: 继承关系,继承关系又被分为实现关系和泛化关系,实现关系是继承抽象类的关系,而泛化关系是继承非抽象类的关系。 聚合关系/组合关系,两种关系都是用来表示实体对象之间的关系,表示整体由部分构成的语义,组合关系较强,聚合关系中如果整体不存在了,部分还是可能存在的,而组合关系中,整体不存在了,部分肯定就不存在了。   关联关系,表示两个事物之间是有关系的。   依赖关系,表示一个事物依赖于另外一个事物。    时序图 时序图是显示对象之间交互的图,这些对象是按时间顺序排列的。时序图中显示的是参与交互的对象及其对象之间的消息交互顺序。 时序图包括的建模元素主要有:对象(Actor),生命线(Lifeline),控制焦点(Focus of control),消息(Message)等等。 参考: http://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html#id1 来源: https://www.cnblogs.com/feng-ye/p/6605318.html

UML类图

女生的网名这么多〃 提交于 2019-12-30 05:39:34
泛化关系(generalization) 类的继承结构表现在UML中为:泛化(generalize)与实现(realize): 继承关系为 is-a的关系;两个对象之间如果可以用 is-a 来表示,就是继承关系:(..是..) eg:自行车是车、猫是动物 泛化关系用一条带空心箭头的直接表示;如下图表示(A继承自B); eg:汽车在现实中有实现,可用汽车定义具体的对象;汽车与SUV之间为泛化关系; 注:最终代码中,泛化关系表现为继承非抽象类; 实现关系(realize) 实现关系用一条带空心箭头的虚线表示; eg:”车”为一个抽象概念,在现实中并无法直接用来定义对象;只有指明具体的子类(汽车还是自行车),才 可以用来定义对象(”车”这个类在C++中用抽象类表示,在JAVA中有接口这个概念,更容易理解) 注:最终代码中,实现关系表现为继承抽象类; 聚合关系(aggregation) 聚合关系用一条带空心菱形箭头的直线表示,如下图表示A聚合到B上,或者说B由A组成; 聚合关系用于表示实体对象之间的关系,表示整体由部分构成的语义;例如一个部门由多个员工组成; 与组合关系不同的是,整体和部分不是强依赖的,即使整体不存在了,部分仍然存在;例如, 部门撤销了,人员不会消失,他们依然存在; 组合关系(composition) 组合关系用一条带实心菱形箭头直线表示,如下图表示A组成B,或者B由A组成

开发规范 - UML图

妖精的绣舞 提交于 2019-12-30 05:38:56
依赖关系是用一套带箭头的虚线表示,他通常描述一个对象在运行期间会用到另一个对象的关系。如图为例码农只有在工作的时候才会用到 Mac 电脑,所以这种依赖关系是依赖于运行状态的。通常情况下是在程序里面通过构造函数、形参等体现。 上图是我模拟出来的一个场景和大家具体说一下类图究竟应该怎么画才对。图中讲的是这样一个「故事」: 一个公司下面有很多部门,公司和部门是不可分割的。 码农属于一个部门,但是如果部门解散了,码农依然依然是码农。 码农无时无刻在用手机,只有工作时间才会使用 Mac。 Mac 是一种电脑,电脑是“可计算处理器”的一种实现。 下面我们就逐一介绍下这些关系。 泛化关系(generalization) 泛化关系为 is-a 的关系;两个对象之间如果可以用 is-a 来表示,就是泛化关系。 泛化关系用一条带空心箭头的直接表示。如图为例, Mac 和电脑就是泛化关系,通常在程序里面泛化表现为继承于非抽象类。 实现关系(realization) 实现关系用一条带空心箭头的虚线表示。如图为例,电脑和可计算处理器就是实现关系,通常程序里面实现关系表现为继承抽象类。比如我们平时写的 Readable,Printable等接口的实现。 聚合关系(aggregation) 聚合关系用一条带空心菱形箭头的直线表示,如图码农和部门就是聚合关系。与组合关系不同的是,整体和部分不是强依赖的

UML类图的关系

青春壹個敷衍的年華 提交于 2019-12-30 05:36:58
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency) 1. 泛化(Generalization) 【泛化关系】:是一种继承关系, 表示一般与特殊的关系, 它指定了子类如何特化父类的所有特征和行为. 例如:老虎是动物的一种, 即有老虎的特性也有动物的共性. 【箭头指向】:带三角箭头的实线,箭头指向父类 2. 实现(Realization) 【实现关系】:是一种类与接口的关系, 表示类是接口所有特征和行为的实现. 【箭头指向】:带三角箭头的虚线,箭头指向接口 3. 关联(Association) 【关联关系】:是一种拥有的关系, 它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子 关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。 【代码体现】:成员变量 【箭头及指向】:带普通箭头的实心线,指向被拥有者 上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。 上图为自身关联: 4. 聚合(Aggregation) 【聚合关系】

UML 类关系及画法

╄→尐↘猪︶ㄣ 提交于 2019-12-30 05:36:32
1 泛化 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。 【箭头指向】:带三角箭头的实线,箭头指向父类 2实现 【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现. 【箭头指向】:带三角箭头的虚线,箭头指向接口 3关联 【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。 【代码体现】:成员变量 【箭头及指向】:带普通箭头的实心线,指向被拥有者 4聚合 【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。 聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。 【代码体现】:成员变量 【箭头及指向】:带空心菱形的实心线,菱形指向整体 5组合 【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。 组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。 【代码体现】:成员变量 【箭头及指向】

UML类图几种关系的总结

风流意气都作罢 提交于 2019-12-30 05:35:48
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化( Generalization ) 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。 【箭头指向】:带三角箭头的实线,箭头指向父类 2. 实现( Realization ) 【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现. 【箭头指向】:带三角箭头的虚线,箭头指向接口 3. 关联( Association) 【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。 【代码体现】:成员变量 【箭头及指向】:带普通箭头的实心线,指向被拥有者 上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。 下图为自身关联: 4. 聚合( Aggregation ) 【聚合关系】:是整体与部分的关系

1 UML基础

被刻印的时光 ゝ 提交于 2019-12-30 05:34:09
  学习设计模式的过程中,发现相关的作者们都会用UML类图来表示一个模式的整体脉络,这种方式确实直观明了,既能体现宏观思路、又能兼顾实现细节。真的是很妙的工具。在开始正式学习设计模式之前,有必要对UML有个大概的掌握。然后,日后有望解锁更多关于UML方面的技能,比如说:建模。哈哈,有点小兴奋呢。   UML全称Unified Modeling Language(统一\标准建模语言),旨在为软件开发提供可视化、模型化的工具。可见,UML既是一种建模工具,也是一种“交流语言”。 一、UML类图的基本元素 1 类的结构   UML用内含三层“格子”的矩形框表示类,如图:      最上层为类的名称;中间为类的字段和属性;最下层为类的行为和方法。   如果为抽象类,类名用斜体标识。 2 访问修饰符   public、private、protected分别用 + - # 来表示   至于C#中的 internal、protected internal修饰符,则没有对应的符号。(UML是通用的标记语言,而后两种修饰符属C#等少数语言) 3 接口表示   有两种方法矩形表示法和棒棒糖表示法(截图来自《大话设计模式》)    二、 相互关系   UML类图中,类与类、接口与类之间的关系一共有泛化(Generalize)、实现(Realization)、依赖(Dependency)、关联