通往架构师之路-软件工程-UML建模-类图-关系与解释?
阅读说明:本节主要是介绍UML类图关系与解释,主要也是让大家对UML建模中的类图基本关系有一个初步了解和认识,后面还会陆陆续续的更新更多详细的UML开发应用学习文章,直接对接我们当下的开发。
注意事项:UML工具是StarUML,我用的是Mac版本,大家可以下载自己电脑对应的版本。
下载地址:http://staruml.io/download
内容一:类图-依赖关系?
1、概念?
描述了一个类的变化对依赖于它的类产生影响的情况。
例如:定义两个类,一个A类,一个B类,然后A类引用了B类,这种关系称之为偶然性或者临时性。同时当我们的B类发生变化的时候,那么影响到A类,这个关系称之为依赖关系。
2、关系与解释?
依赖关系:Dependency
例如:MainActivity和Retrofit之间关系?
注意:箭头指向判定->指向被依赖者
依赖者:MainActivity
被依赖者:Retrofit
箭头指向->Retrofit
内容二:类图-实现关系?
1、概念?
对应于类和接口之间的关系。
说白了:就是通常所说的实现接口。
2、关系与解释?
实现关系:Interface Realization
例如:MainActivity和OnClickListener之间关系?
注意:箭头指向判定->指向接口
实现:MainActivity
接口:OnClickListener
箭头指向->OnClickListener
内容三:类图-泛化关系?
1、概念?
在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间。
2、关系与解释?
泛化关系:Generalization
例如:Activity和MainActivity之间的关系?
注意:箭头指向判定->指向父类
父类:Activity
子类:MainActivity
箭头指向->Activity
内容四:类图-关联关系-单向关联?
1、概念?
第一点:关联关系其实本质就是依赖关系的特殊情况,关联关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等,关联关系可以是单向或者双向。
第二点:单向关联是关联关系中一个场景。
2、关系与解释?
单向关联:Directed Association
例如:员工和考勤记录之间关系->单向关联场景?
1个员工对应多个考勤记录,1个考勤记录对应1个员工。
备注:在这里也就是我们通常所说的“一对多”的意思。
注意:箭头指向判定->指向被关联者
关联者:Employee
被关联者:Attendance
箭头指向->Attendance
内容五:类图-关联关系-双向关联?
1、概念?
第一点:关联关系其实本质就是依赖关系的特殊情况,关联关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等,关联关系可以是单向或者双向。
第二点:双向关联是关联关系中一个场景。
2、关系与解释?
双向关联:Association
例如:订单和用户之间关系->双向关联场景?
一个订单对应多个用户,一个用户对应多个订单。
案例一:团购飞机票,1个飞机票订单可以对应5个用户,1个用户可以购买多张飞机票。
案例二:团购电影票,1个电影票订单可以对应多个用户,1个用户可以购买多张电影票。
备注:在这里也就是我们通常所说的“多对多”的意思。
注意:双向关联不存在箭头指向。
内容六:类图-关联关系-聚合关系?
1、概念?
第一点:聚合关系是关联关系的特殊场景。
第二点:强调整体和局部。
第三点:整体和局部可以分离,各自有各自的生命周期,互不干扰,局部强调共享。
2、关系与解释?
聚合关系:Aggregation
例如:电脑和显卡关系?
注意:箭头指向判定->指向整体
整体:Computer
局部:Displayer
箭头指向->Computer
内容七:类图-关联关系-组合关系?
1、概念?
整体和部分不可以分离,共享生命周期,整体生命周期结束意味着部分生命周期结束。
2、关系与解释?
组合关系:Composition
例如:公司是由各个部门组成?
整体:公司
局部:部门
注意:箭头指向判定->指向整体
整体:Company
局部:Department
箭头指向->Company
备注:本篇文章基本上都是理论概念,但是希望读者对这些理论概念有一个初步认识,后续会对每一个理论概念进行一一分析,并且直接切入当下开发。欢迎每一位读者关注后续文章更新,同时大家有什么好的建议也可以提出来,我也会不断优化方便大家学习提升。Android开发技术分享5000人认证群653 9611 28,欢迎各位喜欢Android技术的同学一起交流!