前言
最近没事,就开始学一下关于设计模式的一些知识,但对于类图之类的还是比较懵的。以下记录设计模式中的类图。
开搞
1.继承
继承关系就比较明了了,就如同动物和鸟的关系。动物有生命、可以繁殖。鸟继承了动物,那么鸟也就会有生命、可以繁殖,并且在此基础上还可以长出羽毛、吃虫子之类的。箭头是空心三角的,实线,以继承者指向被继承者。
2.实现
实线关系就是有一个公用的动作。比如一个跑
的接口。人会跑,动物也会跑,那么就把这个跑
的动作抽象出来,当做一个单独的属性。这样,人和动物都可以实现这个接口,就都实现了这个动作。不同的是这个人或动物的实现过程(有的是两条腿跑。有的是四条腿跑)。箭头是空心三角的,虚线,以实现者指向被实现者。
3.关联
关联关系比较抽象,两者之间有关系,A会影响B,但B不会影响A。就拿季节和蛇的例子:蛇是冷血动物,在天冷的时候就会进入冬眠状态,在天气回暖的时候就会苏醒。在这里,季节就是A,蛇就是B。用大话设计模式的话来说就是:蛇需要“了解”季节的变化规律。当一个类“知道”另一个类时,可以用关联。箭头是实线的,实线,以关联者指向被关联者(知道者指向被知道者)。
4.聚合
聚合关系,字面意思,就是一大堆人聚集起来称为一个整体。每一个人就属于这个人群,这个人群中可以有多个人(这样说其实还是不明了)。简单来说就是A是一个人,这时刚好人族中一群人要和狗族干架(人族和狗族有矛盾)。那么这群人可以拉着A去干架(因为都属于人族),但A不属于这一群人。双向箭头的实线,一头是空心菱形,一头是实线箭头,空心菱形箭头指向大的、多的,实线指向少的、零散的。
5.组合
组合关系就是一个整体由多个零件组成,零件A是比较完整的整体体,另一个或一些拼接到A上组成一个完美的整体来使用。是整体和部分的关系。因此除A之外的可以是一个或多个。双向箭头的实线,一头是实心菱形,一头是实线箭头,实心菱形箭头指向比较完整的,实线指向零零散散的。
6.依赖
依赖关系就更容易懂了。动物要生存需要水、空气和食物。因此动物依赖水、空气和食物等生存资料。单向箭头的虚线,是实线箭头,以依赖者指向被依赖者。