很多新手甚至老手有时候都无法徒手画类图,其中原因可能就是关系线太难记。下面是我总结的类图UML中的概念和Java中的映射,以及对应的关系线。
1、泛化对应的是继承。
2、实现对应的是接口。
3、依赖对应的是方法参数里有个依赖的类。依赖是一个非常模糊的概念,对应到Java中方法里传递一个类,那么就算是当前类依赖了该类。
4、关联有两种,组合和聚合。关联,也就是Association,具体包含两种关联形式,分别是组合和聚合。这两个在Java类中的实现都是通过类中加个字段来表示关联。但具体的使用场景中,需要区分关联类之间的关系来确定具体是属于聚合还是组合。组合表示一种组成关系,比如一个人和心脏之间就是组成关系,如果心脏没了,那么这个人自然就没了。又或者汽车和引擎的关系。而聚合更多的表示的一种松散的关系,二者可以聚到一起搞事,也可以分开后单独搞事。比如公司和员工之间的关系。
组合(Composition)
聚合(Aggregation)
其实这三个都可以表示两个类之间的关联关系,只是这三个的关联强度不同。组合强度最高,关联则是最弱。
当你懒得指明类图之间的关系到底是聚合或组合的时候,你可以直接使用关联(Association)的关系线,关联本身也有自己的关系线可以表示,就是一根普通的线。
泛化(继承) 是实线表示都有实现,然后空心三角。
实现(接口) 是虚线表示无实现,只是接口,然后空心三角。
关联 是菱形,实心的表示组合(强关联),空心的表示聚合(弱关联)。
依赖 最模糊,最难记,那么就是是虚线加箭头,这个箭头是三角形缺一边,更加表示依赖这个概念有多模糊,连个基本的三角形没。
喜欢就转发。