设计模式的关系

发布时间 2023-12-19 19:31:41作者: 子过杨梅

泛化关系

泛化关系用一条带空心箭头的直接表示,可以理解为继承

uml_generalization

eg:汽车是基类,而suv这辆车就是他的子类

uml_generalize

实现关系

实现关系用一条带空心箭头的虚线表示;

eg:将车作为一个接口类(模糊概念,比如跑的挺快),下边的小汽车或是自行车都是车这个模糊概念的实现

uml_realize

 

聚合关系

聚合关系用一条带空心菱形箭头的直线表示,如下图表示A聚合到B上,或者说B由A组成;

uml_aggregation

就是说,奎桑提、厄斐琉斯、瑟提 三个可以组成心之钢,而奎桑提可以单独拿出来作为一个英雄存在,也可以去组成秘术卫士

组合关系

组合关系用一条带实心菱形箭头直线表示,如下图表示A组成B,或者B由A组成;

uml_composition

可以理解为,奎桑提、厄斐琉斯、瑟提、永恩、伊泽瑞尔、凯隐(其中有一个是赛季之星,心之钢+1),这六个能组成七心之钢buff,但是如果你手残,卖掉一个,就没有办法组成七心之钢了,所以这六个人 对 七心之钢,是组成关系。

关联关系(association)

关联关系是用一条直线表示的;它描述不同类的对象之间的结构关系;它是一种静态关系, 通常与运行状态无关,一般由常识等因素决定的;它一般用来定义对象之间静态的、天然的结构; 所以,关联关系是一种“强关联”的关系;

比如,乘车人和车票之间就是一种关联关系;学生和学校就是一种关联关系;

关联关系默认不强调方向,表示对象间相互知道;如果特别强调方向,如下图,表示A知道B,但 B不知道A;

uml_association

 

依赖关系(dependency)

依赖关系是用一套带箭头的虚线表示的;如下图表示A依赖于B;他描述一个对象在运行期间会用到另一个对象的关系;

uml_dependency

与关联关系不同的是,它是一种临时性的关系,通常在运行期间产生,并且随着运行时的变化; 依赖关系也可能发生变化;