1. 背景:写uml类图的时候,记不住箭头的指向,理解不了关联关系
  2. 查的很多次,用了很多次,理解了一些
  3. 概念理解参考:https://zhuanlan.zhihu.com/p/109655171
  4. 记忆:关联/继承/实现接口,这种, 都是从主语出发,指向另一个, 比如继承,说法是:"某类继承了另一个类",那么就从"某类"出发,箭头指向"另一个类"
  5. 记忆:聚合/组合的区别,组合中,有"容器"和target的概念,容器包含target,且容器负责创建target对象,在一层一层的组合/聚合/关联关系网上面,容器创建了target,然后这个target对象可以在关系网里往下传递,这就像孕妇生小孩一样,因为要生小孩,所以菱形是实心的,表示里面有个小孩.聚合的概念,我觉得可以从组合引申,当"组合"的容器创建了target,这个target在关系拓扑网里传递时,其他的对象可能需要持有这个target对象,目的是使用target的属性或者方法,那么这种就是聚合.所以,区别就是,是否"创建者". 再所以,聚合的形状是空心菱形,因为不是它创建的target.聚合/组合都可以宽泛的认为是一种"包含"的关系,那么,"主动句"里,就是容器 包含了target,所以箭头是从容器指向target
  6. 箭头:有三角形箭头和一般型箭头.三角形出现在继承和接口实现,这两个是一种"放大"型的关系,把父类放大,内容更多了,细节更多了,是一种放大, 把接口放大,就是空实现变成了具体实现,也是一种放大
  7. 线:有完整线和虚线,完整线表示关联度比较强,依赖性比较强,相似性比较强,比如继承,因为有继承抽象类,抽象类里的proteed以上的都变成自己的了,所以相似性比较强,关联度,自己的父亲,也是相当强的关联,比如dna的相似性.组合聚合也是,持有一个成员变量引用,依赖性比较强.虚线是依赖性比较弱的,比如,某个方法体里面用到了,返回值用到了,入参用到了,所以 关联关系是虚线,接口实现关系也是虚线,接口实现关联性很弱,方法的细节逻辑它是一点也不管.

站在巨人的肩上
2 声望0 粉丝

引用和评论

0 条评论