UML详解
UML其实很长时间都不知这是什么,只是看别人画过,能看懂,但是一直不知道什么是用的,这里对它进行详细介绍。UML(Unified Modeling Lanuage)统一建模语言,这里对类和层次关系、接口与实现、存取控制、顺序图。
(1)UML的类图(class diagram )是一种可表示一组类,对象实例与接口之间静态关系的图。虽然是类图,但是使用的不止是类。
先建立类:
public abstract class ParentClass{
int field1;
static char field2;
abstract void methodA();
double void methodB(){};
}
public class ChildClass extends ParentClass{
void methodA(){};
static void methodC(){};
}
说明:类均以方框表示,方框再以框线分为几个部分,分别是类名、字段名称、方法名称
abstract:斜体表示类名或者方法名
static:下划线加字段名或者方法名
关于箭头方向:子类指向父类,由于父类不知道谁是它的子类,但是子类一定知道谁是其父类,所以由子类指向父类。
(2)接口与实现
创建类:
public interface Printable{
static void print();
static void newPage();
}
public class Print implements Printable{
void print(){};
void newPage(){};
}
类和实现关系UML图
(3)存取控制
创建类:
public class Something {
private int privateField;
protected int protectedField;
public int publicField;
private void privateMethod() {}
protected void protectedMethod() {}
public void publicMethod() {}
}
存取与控制UML图
符号表示:-代表是priavte,#代表protected,+代表public,其实前面的符号就是代表权限问题。
(4)顺序图
创建类:
public class Client {
Server server=new Server();
void work() {
server.open();
server.print("hello");
server.close();
}
}
public class Server {
Device device=new Device();
public void close() {}
public void print(String s) {
device.write(s);
}
public void open() {}
}
public class Device {
public void write(String s) { }
}
存取与控制UML图
类名写在冒号(:)后面,而且还加上下划线,表示对象的实例,所有对象实例都有一条往下延伸的虚线,成为lifetime(生命线),在此可以看成时间由上向下,上面是过去,下面是未来,只有对象被实例时,才会有生命线。生命线中间一个长方形的框,表示该对象处于运行时期。线段为实线(———>)表示调用该方法,虚线代表方法返回。
顺序图读取顺序:从上往下读取,我们首先看到调用了work方法,执行client的open方法,接着向下看,看到了client调用了print方法,又因为是server的方法,所以就进入了server内部,server的print方法中又调用了device的write方法,所以进入了device执行write方法,执行完成后,返回方法。
上一篇: 二叉树找最近祖先节点和到某一节点的路径
下一篇: Safari如何查看网页源码