系统架构设计师-UML图-类图 | 8月更文挑战

1,244 阅读2分钟

类图的表示形式

image.png 我们可以看到类图是使用一个矩形来表现我们的类。最上面是类名,中间是属性,方法在最下面。

属性

属性的前面我们可以看到有加减号,他们是用来表示这个属性或方法的可见性的。

"+"表示public,"-"表示private

属性后面的等于号是用来表示属性的默认值的。

可见性  名称 :类型 [ =默认值]

方法

可见性  名称(参数列表) [: 返回类型]

返回类型可写可不写

比如上图的operation2就没有写返回参数,但是如果可以的话建议都写

类与类之间关系

image.png

五种关系以及对应的类图画法需要掌握,这里主要是线条的画法需要掌握。

在processon的页面中选中线条之后,可以在上面的工具栏选择线条的起点和终点。

image.png

image.png

关联关系

关联可以分为单向关联和双向关联。

单向关联

单项关联使用一个带箭头的直线表示,代表A持有B。

image.png

上图代表的是一个用户有多个联系地址可供用户下单时选择,这就是一个单向关联。

双向关联

双方各自持有对方类型的成员变量,也就是A中有B,B中也有A。这个就很好理解了,掘金用户有人写了很多的文章,文章又有很多人点赞。

image.png

如果我们能够拿到这两个之间的关系,那么计算恶意刷赞就能变得非常简单。

依赖关系

依赖关系用一条带有箭头的虚线表示,代表的是A必须需要B才能发挥作用。体现在某个类的方法使用另一个类的对象作为参数。

image.png

泛化关系

用带空心三角形的直线表示,用来表示父类和子类之间的关系,也有的地方叫继承关系。

image.png

对于交通工具这个父类而言,汽车和自行车都是它的子类。

聚合关系

UML中聚合关系用带空心菱形和箭头的直线表示,这是一种弱依赖,整体不存在的时候,部分仍可独立存在。

image.png 比如上面的LoginBO中的validate方法,就使用了IUserDAO中的findUserByAccAndPwd方法,但是当去掉了LoginBO,还会有其他地方用到IUserDAO的。

组合关系

组合关系用一个带实心菱形和箭头的直线表示,两者表示强依赖关系,整体不存在的情况下,部分也就没有存在的必要了。

image.png

LoginBO就是为了LoginForm服务的,当LoginForm被干掉的时候,LoginBO也就没有存在的必要了。

实现关系

用来关联说明和实现。用带空心三角形的虚线表示。我们的Service层经常使用实现关系,一个接口对应多个实现

image.png