部分与整体

UML类图画法及其之间的几种关系

僤鯓⒐⒋嵵緔 提交于 2019-12-30 05:30:20
最近做重构项目,需要画一下类图,发现类图的画法及其之间的几种关系已经淡忘了很多,所以整理总结一下,有问题的地方大家可以一起讨论下。 文章目录如下: 类图画法 类之间的几种关系:泛化(Generalization)、实现(Realization)、关联(Association)(又分一般关联、聚合(Aggregation)、组合(Composition))、依赖(Dependency) 一、类图画法 1、 类图的概念 A、显示出类、接口以及它们之间的静态结构和关系 B、用于描述系统的结构化设计 2、 类图的元素 类、接口、协作、关系,我们只简单介绍一下这四种元素。 同其他的图一样,类图也可以包含注解和限制。 类图中也可以包含包和子系统,这两者用来将元素分组。 有时候你也可以将类的实例放到类图中。 3、 类 A、 类是对一组具有相同属性、操作、关系和语义的对象的抽象,它是面向对象系统组织结构的核心,包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation),见下图。 B、 类属性的语法为: [可见性] 属性名 [:类型] [=初始值] [{属性字符串}] 可见性:公有(Public)“+”、私有(Private)“-”、受保护(Protected)“#” 类操作的语法为: [可见性] 操作名 [(参数表)] [:返回类型] [{属性字符串}] 可见性:公有

设计模式之路 | 组合模式

本秂侑毒 提交于 2019-12-18 15:24:51
组合模式的定义与特点 组合(Composite)模式的定义:有时又叫作部分-整体模式,它是一种将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访问性。 组合模式的主要优点有: 组合模式使得客户端代码可以一致地处理单个对象和组合对象,无须关心自己处理的是单个对象,还是组合对象,这简化了客户端代码; 更容易在组合体内加入新的对象,客户端不会因为加入了新的对象而更改源代码,满足“开闭原则”; 其主要缺点是: 设计较复杂,客户端需要花更多时间理清类之间的层次关系; 不容易限制容器中的构件; 不容易用继承的方法来增加构件的新功能; 组合模式的结构与实现 组合模式的结构不是很复杂,下面对它的结构和实现进行分析。 1. 模式的结构 组合模式包含以下主要角色。 抽象构件(Component)角色:它的主要作用是为树叶构件和树枝构件声明公共接口,并实现它们的默认行为。在透明式的组合模式中抽象构件还声明访问和管理子类的接口;在安全式的组合模式中不声明访问和管理子类的接口,管理工作由树枝构件完成。 树叶构件(Leaf)角色:是组合中的叶节点对象,它没有子节点,用于实现抽象构件角色中 声明的公共接口。 树枝构件(Composite)角色:是组合中的分支节点对象,它有子节点。它实现了抽象构件角色中声明的接口,它的主要作用是存储和管理子部件,通常包含 Add

组合模式

痴心易碎 提交于 2019-12-12 13:21:48
在现实生活中,存在很多“部分-整体”的关系,例如,大学中的部门与学院、总公司中的部门与分公司、学习用品中的书与书包、生活用品中的衣月艮与衣柜以及厨房中的锅碗瓢盆等。在软件开发中也是这样,例如,文件系统中的文件与文件夹、窗体程序中的简单控件与容器控件等。对这些简单对象与复合对象的处理,如果用组合模式来实现会很方便。 组合模式的定义与特点 组合(Composite)模式的定义:有时又叫作部分-整体模式,它是一种将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访问性。 组合模式的主要优点有: 组合模式使得客户端代码可以一致地处理单个对象和组合对象,无须关心自己处理的是单个对象,还是组合对象,这简化了客户端代码; 更容易在组合体内加入新的对象,客户端不会因为加入了新的对象而更改源代码,满足“开闭原则”; 其主要缺点是: 设计较复杂,客户端需要花更多时间理清类之间的层次关系; 不容易限制容器中的构件; 不容易用继承的方法来增加构件的新功能; 组合模式的结构与实现 组合模式的结构不是很复杂,下面对它的结构和实现进行分析。 1. 模式的结构 组合模式包含以下主要角色。 抽象构件(Component)角色:它的主要作用是为树叶构件和树枝构件声明公共接口,并实现它们的默认行为。在透明式的组合模式中抽象构件还声明访问和管理子类的接口

UML各类箭头

倾然丶 夕夏残阳落幕 提交于 2019-12-11 00:46:56
依赖(Dependency) 一种使用的关系,既一个类的实现需要另一个类的帮助,主要体现在局部变量,方法的参数以及对静态方法的调用,箭头指向被使用者。 泛化(Generalization) 一种继承关系,表示一般和特殊的关系,它指定了子类如何特化父类的所有特征和行为. 实现(Realization) 是一种类与接口的关系, 表示类是接口所有特征和行为的实现. 聚合(Aggregation) 是整体与部分的关系, 且部分可以离开整体而单独存在. 组合(Composition) 是整体与部分的关系, 但部分不可以离开整体而单独存在. 关联(Association) 一种拥有的关系, 它使一个类知道另一个类的属性和方法。 关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。 来源: https://www.cnblogs.com/zyf3855923/p/12018985.html

类之间的关系

北战南征 提交于 2019-12-09 17:31:00
依赖 dependency A使用了B,这种使用关系具有 偶然性、临时性、非常弱 。但是 B 类的变化会影响到 A ;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖; 在代码中,比如一个类的 某个方法引用了另一个类 。 表示:虚线箭头 使用者 ------- > 被使用 关联Association:普通关联 两个类、或者类与接口之间语义级别的一种 强依赖关系 ,比如我和我的朋友;这种关系比依赖更强、 非偶然性、非临时性的,一般是长期性 的,而且双方的 关系一般是平等的 、关联可以是 单向、双向 的; 表现在代码层面,为被关联类B以 类属性的形式 出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的 全局变量 ; 实线箭头,两端带数量, 使用者—— > 被使用 关联:聚合 Aggregation 关联的一种特例,体现的是 整体与部分、拥有的关系 ,即 has-a 的关系,此时 整体与部分之间是可分离 的,他们可以 具有各自的生命周期 , 部分可以属于多个整体对象,也可以为多个整体对象共享 ; 比如计算机与CPU、公司与员工的关系等; 空心菱形(整体) + 实线箭头(部分) 关联:组合 Composition 组合也是关联关系的一种特例,他体现的是一种 contains-a 的关系,这种关系比聚合更强,也称为 强聚合 ;他同样体现整体与部分间的关系,但此时