之因此学习UML类图,是由于想把前面看的《设计模式之禅》再看一遍,但文章都用到了uml类图,前面其实都只知其一;不知其二,以为本身挺low的,因此以为仍是得看明白才行。才浏览了网上几篇博客,现将知识点整理以下:html
博客来源:设计模式
类之间的关联关系和依赖关系.net
如图,Person类被分为三部分,从上到下依次是:htm
其中,权限的表示方法简写为了+、#、~、-,分别表示public、protected、default、privite。对象
A指向B,表示B是A的泛化,即继承。blog
A指向B,表示A实现了B继承
A指向B,表示A依赖于B,即在A中使用到了B对象,与关联关系相区分,依赖比关联关系要弱一些,依赖关系通常是类B以参数的形式传入类A的方法(参数依赖)、类B以局部变量的形式存在于类A的方法中(局部依赖),类A调用类B的静态属性或方法(静态依赖),而关联关系一般是指一个类对象做为另外一个类对象的成员变量。
关联又分为单向关联,双向关联。其中:
A指向B表示,通常用于表示B做为成员变量在A中,是一种较强的关系。
表示A和B都做为成员变量在对方类中,代码中应该尽可能避免双向关联。
一种特殊的关联关系,用以表示总体由部分构成的语义,但与组合关系相区分的是,其中总体和部分又相对独立,能够分开,如学生与选修课,选修课由学生一块儿选修组成,可是选修课没有了,不表明学生这个实体就失去意义了。
菱形那一边表示总体,这里的图表示B由A组成,但就算没了B,A也有本身的意义。
也是一种特殊的关联关系,与聚合关系相似,表示的也是总体由部分构成,可是区别的是即便聚合的总体被破坏,部分则失去了意义,换句话说部分的生命周期依赖于总体的生命周期,如公司与部门,公司不存在了,则部门也不存在了。
菱形那一边表示总体,这里的图表示B由A组成,也表示没了A,B也不存在(注,与聚合关系图对比这里是实心的菱形)。