类图中用的最多的图,你知道吗?

xzdxmynet 发布于 2024-04-26 阅读(47)

类图是 UML 中最常用的图。 由此可见类图非常重要。

类图的英文是Class。 形状很简单,由一个长方形、两个长方形或三个长方形组成。

如下所示:

如图,最上面一栏是class name,即类的名称。 第二列是类的属性(一个类可以有一个或多个属性,当然有些类没有属性)。 第三列是类的方法,也叫类的操作,指的是这个类可以做什么(和类的属性一样,类的方法可以有一个,多个或者没有)

类之间的关系

上面只讲了一个类的构成。 当我们编写程序时,不可能只有一个类。 通常有很多课。 如何处理好这些类之间的关系是一件非常重要的事情。

我们看一下类之间的关系:

关联 关联分为组合和聚合

Aggregation():我认为直接理解组合的定义并不容易。 让我们举个例子。 我个人很喜欢足球,所以我举一个与足球相关的例子。

事实上,球员和俱乐部之间是一种聚合关系。 俱乐部由球员组成。 球员属于俱乐部。 俱乐部可以买卖球员,球员也可以选择自己想要的俱乐部。 它们之间没有必然的关系,组合也不同。

聚合由末端带有空心菱形的实心箭头表示。 空心菱形也可以理解为弱关系。

组合():上图中皇马与C罗、卡卡的关系是聚合关系。 他们之间并没有必然的关系。 无论C罗和卡卡由谁转会,皇马都不会发生根本性的改变,而是存在组合关系。 他们之间的关系非常密切。 C罗和C罗自己的脚和手的关系就是这种组合关系。

该组合由实心箭头加上末尾的实心菱形表示。 实心钻石可以理解为牢固的关系。

与C罗的手脚相比,他与皇马的关系显然要紧密得多。 如果C罗没有脚、没有手,对他的影响将是巨大的。 这对他来说是至关重要的影响。

另一种关系是泛化/继承()。 泛化和继承实际上是一个相反的过程。 泛化意味着子类抽象了父类,而继承意味着父类体现了子类。 例如,足球中的西甲和意甲是什么样的? 英超联赛之间存在泛化/继承关系

泛化/继承由空心实心箭头表示

最后一种关系是依赖()。 所谓依赖,顾名思义,就是一个阶级受到另一个阶级的影响和限制。 这就像足球比赛和比赛规则之间的关系。 一场足球比赛必须遵循比赛规则才能顺利进行,而比赛规则的改变将会影响比赛的结果

上面是类图中的一些东西。 我的理解非常肤浅。 如果我错了,希望您能给我一些建议。

标签:  关系 聚合 继承 足球 俱乐部 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。