设计模式作业(二)——UML类图怎么画

时间:2024-04-04 07:09:08

UML类图怎么画
一、注释(comment)
注释就是对类图的补充说明,可以附加在任何元素上,用右上角有折角的矩形来表示,其内放置说明文字,通过虚线连接被注释的元素。
设计模式作业(二)——UML类图怎么画
二、类(Class)
在面向对象(OO) 编程中,类是对现实世界中一组具有相同特征的物体的抽象。
在 在UML 类图中,类使用包含 类名 、 属性(field) 和 和 方法(method) 且带有分割线的矩形来表示:
设计模式作业(二)——UML类图怎么画
类的属性的完整表示方式:
可见性 名称 型 :类型 [ = 缺省值] 中括号中的内容表示是可选的
类的方法的完整表示方式:
性 可见性 名称( 参数列表) [ : : 返回类型] 中括号中的内容是可选的。
设计模式作业(二)——UML类图怎么画
三、接口(Interface)
接口是一种特殊的类,具有类的结构但 不可被实例化 ,只可以被实现(继承)。
在 在UML 中, 接口有两种表示方式 :
普通接口表示法(飞翔);
设计模式作业(二)——UML类图怎么画
棒棒糖表示法(讲人话), 使用一个带有名称的小圆圈来表示, 在旁边写上相应接口名称,没有具体接口方法。
设计模式作业(二)——UML类图怎么画
四、UML类图中的关系
1、类图 类图—依赖关系 依赖关系( (Dependency) )
只要 是 在类中 用到 了对方 , 那么他们之间就存在依赖关系。如果没有对方,编绎通过不了 。
public class PersonDao{}
public class IDCard{}
public class Person{}
public class Department{}
public class PersonServiceBean {
private PersonDao personDao;
public IDCard getIDCard(Integer personid) { }
public void save(Person person){}
public void modify(){Department department = new Department();
}
}
设计模式作业(二)——UML类图怎么画
2、类图— 关联关系(Association) )
关联关系实际上就是类与类之间的联系 , 是依赖关系的特例 。实线箭头
关联具有 导航性 :即双向关系或单向关系
关系具有 多重性。
(1)单向一对一 关系
// 一个人一个身份证号 一对一单向的 一对一
public class Person { private IDCard card;}
public class IDCard{}
设计模式作业(二)——UML类图怎么画
(2)双向 一对一 关系
// 一个人 对应 一 个身份证号 一对一
//一 一 个身份证号也对应一个人
public class Person { private IDCard card;}
public class IDCard{ private Person person; }
设计模式作业(二)——UML类图怎么画
3、类图— 继承关系(Inheritance) )
继承关系也称泛化关系,是依赖关系的 特例。 。 A 类继承了B类也相当于A 类用到了B 类。 空心三角形+ 实线
public abstract class DaoSupport{
public void save(Object entity){ }
public void delete(Object id){ }
}
public class PersonServiceBean extends
DaoSupport{ }
PersonServiceBean 继承了 了DaoSupport
设计模式作业(二)——UML类图怎么画
4、类图— 实现关系(Implementation) )
实 现关系实际上就是A类实现B接口 ,是依赖关系的特例 ,依赖关系更强。 空心三角形+ 虚线
public interface PersonService {
public void delete(Interger id);
}
public class PersonServiceBean implements PersonService {
public void delete(Interger id){}
}
PersonServiceBean 实现了 PersonService 这个接口- - 实现关系实现 关系实际上就是A类实现B接口
设计模式作业(二)——UML类图怎么画
5、类图— 聚合关系(Aggregation) )
聚合关系表示的是整体和部分的关系, 整体与部分可以分开。 聚合关系是关联关系的特例,所以他具有关联的导航性与多重性 。使用带空心菱形的实线,菱形指向整体来表示。
如 :一台电脑由键盘(keyboard) 、显示器(monitor),鼠标等组成。考虑计算机与鼠标、显示器能不能分开?
如果认为:关系是可以分开的,则是聚合关系 ;
关系是不可以分开的 ,则是组合关系。
鼠标是可以分离的:可以插上也可以不插上,电脑没有鼠标还是一个电脑;显示器也是可以分离的;鼠标类、显示器类与电脑类构成聚合关系。
public class Computer {
private Mouse mouse; // 鼠标可以和computer 分离
private Monitor monitor; // 显示器可以和Computer 分离
public void setMouse(Mouse mouse) {this.mouse = mouse; }
public void setMonitor (Monitor monitor) {
this.monitor = monitor;}
}
设计模式作业(二)——UML类图怎么画
认为不 可以 分开, 是组合关系,
代码 :
public class Computer {
private Mouse mouse = new Mouse();
// 鼠标 不 可以和 和computer 分离—— 组合关系
private Moniter monitor = new Monitor();
// 显示器 不 可以和 和Computer 分离—— 组合关系
public void setMouse(Mouse mouse) {this .mouse=mouse;}
public void setMonitor(Monitor monitor) {
this .monitor = monitor;}
}
设计模式作业(二)——UML类图怎么画
6、类图— 组合关系(Composition) )
组合关系:也是整体与部分的关系,但是整体与部分 不可以分开 。 实心菱形+实线
组合关系:也是整体与部分的关系,但是整体与部分 不可以分开 。
public class Person{
private IDCard card; // 聚合
private Head head = new Head(); // 组合
}
public class IDCard{}
public class Head{}
设计模式作业(二)——UML类图怎么画
组合关系:也是整体与部分的关系,但是整体与部分不可以分开 。
public class Person{
private IDCard card = new IDCard(); // 组合
private Head head = new Head(); // 组合
}
public class IDCard{}
public class Head{}
设计模式作业(二)——UML类图怎么画