我们介绍“ 类图”:
用于描述系统中的类与类之间的各种关系。
继承:父子类关系;
实现:类与接口关系;
关联(全局变量, 组合/聚合): 值、引用;
依赖:局部变量(非Spring中 依赖注入)。
1.类图举例
我们在Rose中创建类图的方法:
创建一个实体:
然后鼠标放在实体上面,单击鼠标右键,可以添加这个实体类的属性和方法:
添加一个属性,然后双击属性,点检attribute可以设置属性的详细:
然后我们再添加一个name的属性。
之后我们按照上面类似的方法,给实体类添加一个方法:
然后我们给它设置一个参数(String name),无返回(void)
然后用同样的方法我们添加getName()方法:
如果不显示方法的参数,可以勾选“显示原型”:
之后我们添加一个接口:
接口图形如果是圆的,不想用圆的:
想改成方的,就在这里更改:
好了,我们的类图的例子和设置方法给大家了,我们将使用这种画图方法来画一个完整的类图。
我们画一个用户管理模块的类图:
其中图中的"关联"和"依赖"的不同:
关联:全局性
依赖:局部性
然后我们解释一下图中的各种关系:
(1)继承关系
public abstract class BaseDaoImpl{
public void save(Object entity){
}
public Object findObject(Object id){
}}
public class UserDaoImpl extends BaseDaoImpl{
}
(2)实现关系
public interface UserDao {
}
public class UserDaoImpl
implements UserDao {
}
(3)关联关系
关联关系实际上就是类与类之间的联系;
关联具有导航性:即双向关系或单向关系。
(4)关联之聚合关系(By ref)
聚合关系,表示的是整体和部分的关系,整体与部分可以分开。
使用带空心菱形的实线来表示:
(5)组合关系(By value)
也是整体与部分的关系,但是整体与部分不可以分开;部分离开整体没有实际意义。
使用带实心菱形的实线来表示:
(6)依赖关系
A类使用到了另一个B类型。
关系具有:临时性的、偶然性,但是B类的变
会影响到A。代码层面,为类B作为参数被类A在某个method方法中使用。