UML类和类之间的关系详解 |
您所在的位置:网站首页 › 网上支付方式主要有哪几种 › UML类和类之间的关系详解 |
文章目录
UML类类的属性的表示方式类的方法的表示方式类与类之间关系1.1 泛化关系1.2 实现关系1.3 关联关系1.4 聚合关系1.5 组合关系1.6 依赖关系
UML类
在Class类中,一般都封装了属性和行为方法,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。在系统中,每个类都具有一定的功能职责1,一个类可以有多种职责,设计得好的类一般只有一种职责,即符合单一职责原则。 在定义类的时候,将类的职责分解成为类的属性和行为操作(即方法)。类的属性即类的数据职责,类的操作即类的行为职责。设计类是面向对象设计中最重要的组成部分,也是最复杂和最耗时的部分。 在软件系统运行时,类将被实例化成对象(Object),对象对应于某个具体的事物,是类的实例(Instance)。 类图(Class Diagram)使用出现在系统中的不同类来描述系统的静态结构,它用来描述不同的类以及它们之间的关系。 在系统分析与设计阶段,类通常可以分为三种,分别是实体类(Entity Class)、控制类(Control Class)和边界类(Boundary Class),下面对这三种类加以简要说明: (1) 实体类:实体类对应系统需求中的每个实体,它们通常需要保存在永久存储体中,一般使用数据库表或文件来记录,实体类既包括存储和传递数据的类,还包括操作数据的类。实体类来源于需求说明中的名词,如学生、商品等。 (2) 控制类:控制类用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度。控制类一般是由动宾结构的短语(动词+名词)转化来的名词,如增加商品对应有一个商品增加类,注册对应有一个用户注册类等 (3) 边界类:边界类用于对外部用户与系统之间的交互对象进行抽象,主要包括界面类,如对话框、窗口、菜单等。 在面向对象分析和设计的初级阶段,通常首先识别出实体类,绘制初始类图,此时的类图也可称为领域模型,包括实体类及其它们之间的相互关系。 在UML类图中,类使用包含类名、属性和操作且带有分隔线的长方形来表示。 在软件系统中,类并不是孤立存在的,类与类之间存在各种关系,对于不同类型的关系,UML提供了不同的表示方式,下面将逐步详细介绍。参考链接 类的属性的表示方式在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个User类,它包含createTime,userName、userPhone和sex这4个属性,以及getUserInfo(Long id)和getAllUserInfo()方法。 因此,上图中的User类具有3个私有属性,一个公开属性和两个公有方法。当然啦,不同的建模工具,可能有细微的差别,比如Rational Rose建模工具里,可见性不是用加好和减号表示的,用图标表示的。 实际上,类的属性的完整表示方式是这样的: 可见性 名称 :类型 [ = 缺省值]中括号中的内容表示是可选的。 类的方法的表示方式方法的完整表示方式如下: 可见性 名称(参数列表) [ : 返回类型]同样,中括号中的内容是可选的。 比如在下图的Dept类中,定义了3个方法: 类和类之间的6种关系: 泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。 各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。 类之间6种关系汇总: 关系关系如何使用UML图表达泛化使用带空心三角形的实线表示泛化(继承)关系实现使用带空心三角形的虚线表示实现关系关联单向关联使用一个带箭头的实线表示,双向关联使用一个不带箭头的实线表示,自关联使用一个带有箭头且指向自身的实线表示聚合聚合关系用带空心菱形和箭头的实线表示组合组合关系用一个带实心菱形和箭头的实线表示依赖依赖关系用一条带有箭头的虚线表示下面使用类图,详细介绍每一种关系。 1.1 泛化关系泛化关系,指的就是:类和类、接口与接口之间的继承关系。继承关系可以用IS-A 表示。 举例: 人是一种高级动物,就可以表示为:Person是一个(IS-A)高级动物,这就是一种继承关系。 接口是一种特殊的抽象类,实现关系(like a)使用的是implements关键字,在UML类图中,使用带空心三角形的虚线表示实现关系。如下图中,定义了一个抽象动物接口,里面有个公开的eat()方法。使用Dog类实现了Animal接口的eat()方法。 关联关系指的是,一个类与另一个类之间有某种关联。这种关联关系可以使用HAS-A表示。 关联关系如果进行详细的划分,又可进一步分为单向关联、双向关联和自关联。 单向关联 我们可以看到,在UML类图中,单向关联使用一个带箭头的实线表示。 双向关联 自关联 自关联在UML类图中,自关联使用一个带有箭头且指向自身的实线表示。 聚合关系描述的是整体和部分的关系,是一种比较特殊的关联关系。在聚合关系中,整体的生命周期,不会决定部分的生命周期。 比如: 汽车和发动机引擎之间的关系、老师和学生之间的关系,就是整体和部分的关系。 组合关系也可以看作是一种特殊的聚合关系,是一种比聚合关系还要强的关系。整体的生命周期决定部分的生命周期,部分是依附在整体上面的,有时候也有人称为合成关系。 组合关系与聚合关系最大的不同在于:组合关系这里的“部分”脱离了“整体”是无法存活的,部分就不复存在。比如下图人体和细胞的关系: 依赖关系是比关联关系弱的一种关系,是所有关系中最弱的一种,在java语言中体现为返回值,参数,局部变量和静态方法调用。 好啦,UML类之间的6种关系介绍完了,如果这篇文章对你有帮助,欢迎给个赞,您的支持,是博主创作最大的动力! 写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,希望尽自己的努力,做到更好,大家一起努力进步! 如果有什么问题,欢迎大家一起探讨,代码如有问题,欢迎各位大神指正! 给自己的梦想添加一双翅膀,让它可以在天空中自由自在的飞翔! 职责指的是一个类要完成什么样的功能,要承担什么样的义务。 ↩︎ |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |