MD,使用万恶的为知笔记,写好的东西都没有了!!又要重写!!
最近在看Thrift源码,看到了TNonblockingServer,类与类之间的关系有点乱,打算使用UML类图来画一画,于是找了些资料,并记录下来,手打一遍,加深下印象。托为知笔记的褔,可以多加深一些印象了!
主要的参考资料是:深入浅出UML类图系列
UML不仅仅可以用来表示类以及类与类之间的关系。但是就像一个老外说的,你所看到的UML图,大部分都是UML 类图。
1.类
类封装了属性和操作,是面向对象的重要组成部分,是具有相同属性、方法、关系的对象集合的总称。在系统分析与设计过程中主要涉及三种类:实体类、控制类、边界类。
(1)实体类(Entity Class):对应系统需求中的每一个实体。感觉有点像spring MVC中的model类或者VO(value object)类。如需求中的名词通常要创建一个类,如学生、商品类。
(2)控制类(Control Class):对应应用系统的业务逻辑处理过程。有点像spring MVC中的controller。通常由动宾结构的名词来命名该类。如在需求中的增加商品类,AddProduct。
(3)边界类(Boundary Class):用于外部对象与系统进行交互的的抽象。主要包括界面类,如窗口、按钮等。在web开发中,基本用不着。
2.UML类图
UML类图包含三个方面:类名、属性、方法
先看实例:
代码如下:
public class Employee {
private String name;
private int age;
private String email;
public void modifyInfo() {
......
}
}
(1)类名:用一个字符串表示
(2)属性:
UML中规定属性的表示形式如下:
a.可见性:public(+),private(-),protect(#)
b.名称:属性名
c.类型:包括基本数据类型和用户自定义类型
d.缺省值:可选项,用来表示该属性的默认值。
(3)方法:
UML类图规定方法的表示形式如下:
a.可见性:public(+),private(-),protect(#)
b.名称:方法名
c.参数列表:多个参数之间用逗号隔开。参数包括参数类型和参数名。
d.返回类型:可选项,用来方法的返回类型。构造方法没有返回值。
再举一个例子: