面向对象开发必会UML类图

1 UML类图是什么

       在很早之前就在书中见过类图,只不过当时不知道是具体叫什么,对于书上所绘的类图所描述的意思也是一知半解,没有真正理解作者所要表达的类与类之间的关系。如下从书中所截的就是一个UML类图,所描述的就是ConnectionManager类实现了IConenectionManager接口(泛化关系),DataTransfer类实现了IDataTransfer接口(泛化关系),而Phone类与ConnectionManager类、DataTransfer类分别构成组合关系。

2 类与类的关系

       看懂类图很大一部分就是要看懂类与类之间的关系,可以分为以下六种:

2.1 泛化(Generalization)

       泛化,按照java语言的标准来说的话,就是继承,比如用篮球运动员去继承运动员这一个类,就是一个泛化的关系。在UML类图中是画一条带有空心箭头的实现,它指向父元素。

2.2 实现(Realization)

       实现,用飞机去实现飞行器这一个接口,这就是实现,对应着java语言中的implements。在UML类图中把实现关系画成一条带有空心箭头的虚线。

2.3 依赖(Dependency)

       依赖是两个事物间的语义关系,其中一个事物(独立事务)发生变化会影响另一个事务(依赖事务)的语义,比如小汽车依赖手机GPS导航。在UML类图中画成一条可能有方向的虚线。

2.4 关联(Association)        

      关联描述了对象与对象之间的连接(2.5所描述的聚合是一种特殊的关联),比如大卡车与它所停的车库就是一种关联关系。在UML类图中使用一条直线表示。

2.5 聚合(Aggregation)

       聚合是一种特殊类型的关联,它描述了整体和部分间的结构关系,比如大卡车与发动机就是一种聚合关系。在UML类图中用一条带空心菱形箭头的直线表示。如图所示,表示大卡车包含了发动机。

2.6 组合(composition)

      组合与聚合的相同处在于都表示了整体与部分的联系,而不同之处就是在组合关系中,如果A包含了B,如果A不存在了,B也就不存在了。在UML类图中用一条带实心的菱形箭头的直线表示。如图所示,超跑由定制的尾翼组成,一旦该超跑报废,尾翼也随之无用。

发布了48 篇原创文章 · 获赞 52 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/y506798278/article/details/100831871