UML建模语言、设计原则、设计模式( 六 )


UML建模语言、设计原则、设计模式

文章插图
关联关系是属于包含关系中的一种(组合、聚合、关联)是A has - a B的关系是整体和部分的关系 , 可以分割 , 是后来组合在一起的换言之:两个类之间的关联 , 也可以是一个类和自身的关联班级类和学生类 , 学生类作为成员变量存在于班级类中也如:人有汽车、人有电脑
UML建模语言、设计原则、设计模式

文章插图
类关联这就是比关联类更细节性的画图(让某些情景不产生歧义)抽象了多对多的本身(A集合和B集合各自全集的笛卡尔乘积的子集)下图为关联类
UML建模语言、设计原则、设计模式

文章插图
上图表达的逻辑:1、一个人有多条出席会议记录 , 对应的是一个会议[图符合 , 因为这个人可能会和不同的人开同一个会议];2、一个会议有2或以上条出席会议记录 , 对应的是一个人[图也符合 , 因为这个会议某个人可能参加了多次] 。所以虽然图看起来没问题 , 但是不贴合现实[一个人出席了同一个会议那记录为1就可以了 , 按上图来看就会出现某个人有多条出席会议记录 - 即:重复了] , 所以上图中“总的出席会议记录数量大小”在数学上应该是:多人、多会议各自全集的笛卡尔乘积的子集[会排除重复的] , 因此为了贴合现实图就改造为如下的类关联:
UML建模语言、设计原则、设计模式

文章插图
逻辑:1、2或以上的人对应多个会议(多对多);2、出席会议记录类关联了人和会议两个类 , 并且出席会议记录最后的结果为两边集合各自的全集的笛卡尔乘积的子集[排除重复的结果])
UML建模语言、设计原则、设计模式

文章插图
依赖箭头指向入参类A need - a B 的关系班级类和学生类 , 班级类作为学生类的方法入参
UML建模语言、设计原则、设计模式

文章插图
实现箭头指向接口学生类实现人类
UML建模语言、设计原则、设计模式

文章插图
1.2.3.1.1、各类图关系实例1.2.3.1.1.1、泛化 / 继承public class DaoSupport{private String name;public void save(Object entity){}public void delete(Object id){}}public class PersonServiceBean extends Daosupport{}使用typora的mermaid脚本画图
语法:<|-- 表示继承箭头指向的一方是被继承者
+表示public
- 表示 private
语法学习地址:Markdown教程-慕课网 (imooc.com)mermaid语法学习地址:https://mermaid-js.github.io/mermaid/#/
```mermaidclassDiagram%% 要用注释只能放在这里 , 对类图进行说明class DaoSupport{属性返回值类型放在前面 -String的-和String中间最好也别搞空格(只是这个mermaid脚本中而已) , 但是严格写法应该是 -name : String-String name方法返回值类型是在后面 另外:+void的+和void之间别搞空格+save(Object entity) void+delete(Object id) void}class PersonServiceBean{}DaoSupport <|-- PersonServiceBean```效果如下:
classDiagram%% 这是一个小试牛刀的类图 class DaoSupport{-String name+save(Object entity) String+delete(Object id) void }
class PersonServiceBean{
}
DaoSupport <|-- PersonServiceBean
1.2.3.1.1.2、组合public class Person {// 组合关系:某个类的对象 当做 当前类的属性 , 并已经new了private Head head = new Head();}

经验总结扩展阅读