类之间的关系

1.依赖关系(Dependency)

对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量函数参数返回值建立的对于其他对象的调用关系。一个类调用被依赖类中的某些方法而得以完成这个类的一些职责。

在类图使用带箭头的虚线表示,箭头从使用类指向被依赖的类。

场景:人与电脑无关,但是当人编程,需要使用电脑,此时完成编程动作依赖电脑,类与类的依赖关系图在程序中为using引用。

dependency.png

2.关联关系(Association)

对象之间一种引用关系,比如商品类与订单类之间的关系。这种关系通常使用类的属性表达。关联又分为一般关联、聚合关联与组合关联。聚合和组合比较特殊,后面单列。

在类图使用带箭头的实线表示,箭头从使用类指向被关联的类。可以是单向(商品类和订单类)和双向(订单类和客户类、丈夫和妻子)。

关联关系表示的是类之间的“持久”关系,这种关系一般表示重要的业务关系,需要数据库存储,而依赖则表示“暂时、短暂”的关系,无需存储。

Association.png

3. 聚合关系(Aggregation)

表示"has-a"的关系,是一种不稳定的包含关系。较强于一般关联,有整体与局部的关系,并且没有了整体,局部也可单独存在。关联关系和聚合关系在语法上没有区别,只有在语义上区分,包含整体与部分的关系。

在类图中整体端使用空心菱形的连接方式,例如Car\Engine\Tyre。

Aggregation.png

4.组合关系(Composition)

表示 "contains-a"的关系,是一种强烈的包含关系。组合类负责被组合类的生命周期。也使用属性表达组合关系,是关联关系的一种,是比聚合关系强的关系。

在类图中整体端使用实心菱形的连接方式,例如一个窗口包含menu、slider、Panel

Composition.png

5.泛化(generalization)

5.1继承(inheritance)

表示“is-a”的关系,上层是父类。

在类图中父类端采用空心三角实线连接,例如cat是animal的子类。

继承.png

5.2实现(realization)

表示“is-a”的关系,上层是接口。

在类图中接口端采用空心三角虚线连接,例如dog实现animaldo接口。


实现.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容