类图和对象图 ——用于描述系统中的对象类本身的组成和对象类之间的各种静态关系。
l类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合
对象图描述一组对象与它们之间的联系,它是系统状态的某一时刻的快照,它的使用相当有限,它主要用于了解系统在某个特定时刻的具体状况和数据结构。 对象图表示方法与类图大体相同,对象图中的对象属性可以有具体值,类图中的一个类可以对应成对象图中多个对象,例如,部门类的自关联就可以对应成多个部门对象之间的关联。 |
1、类图—依赖关系(Dependence) 只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编绎都通过不了。 |
2、类图—泛化关系(generalization) 泛化关系实际上就是继承关系,他是依赖关系的特例
|
3、类图—实现关系(Implementation) 实现关系实际上就是A类实现B类,他是依赖关系的特例
l实现关系实际上就是A类实现B类,他是依赖关系的特例 |
4、类图—关联关系(Association)
关联关系实际上就是类与类之间的联系,他是依赖关系的特例
关联具有导航性:即双向关系或单向关系
①单向关系→一对一 ②单向关系→一对多 ③双向关系→一对一 ④双向关系→多对多 ⑤自关联
l
|
4、类图—聚合关系(Aggregation)
聚合关系(Aggregation)表示的是整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,所以他具有关联的导航性与多重性。
如:一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成;组成电脑的各个配件是可以从电脑上分离出来的
使用带空心菱形的实线来表示:
也就是说Mouse和Monitor不是Computer所必须有的
l
|
5、类图—聚合关系(Aggregation) 也是整体与部分的关系,但是整体与部分不可以分开。 如果我们人Mouse,Monitor和Computer是不可分离的,则升级为组合关系 |
类图和Java代码互相生成 ①类图→.java代码: 选中图→Tools→Java/J2EE→Generate Code ②.java代码→类图 选中图→Tools→Java/J2EE→Reverse Engineer→reverse |
类图练习1——单例设计模式 生成的Java文件:
|
类图练习2——工厂设计模式
|