通往架构师之路-软件工程-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技术的同学一起交流!

你可能感兴趣的:(通往架构师之路-软件工程-UML建模-类图-关系与解释?)