欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

UML详解

程序员文章站 2022-07-09 12:43:10
...

  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(){};

 }

         UML详解
说明:类均以方框表示,方框再以框线分为几个部分,分别是类名、字段名称、方法名称
abstract:斜体表示类名或者方法名
static:下划线加字段名或者方法名
关于箭头方向:子类指向父类,由于父类不知道谁是它的子类,但是子类一定知道谁是其父类,所以由子类指向父类。
(2)接口与实现
创建类:

 public interface Printable{    
    static void print();
    static  void newPage();
}
 public class Print implements Printable{
      void print(){};
      void newPage(){};

 }

         类和实现关系UML图
         UML详解
(3)存取控制
创建类:

public class Something {
    private int privateField;
    protected int protectedField;
    public int publicField;
    private void privateMethod() {}
    protected void protectedMethod() {}
    public void publicMethod() {}

}

         存取与控制UML图
         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图
     UML详解
  类名写在冒号(:)后面,而且还加上下划线,表示对象的实例,所有对象实例都有一条往下延伸的虚线,成为lifetime(生命线),在此可以看成时间由上向下,上面是过去,下面是未来,只有对象被实例时,才会有生命线。生命线中间一个长方形的框,表示该对象处于运行时期。线段为实线(———>)表示调用该方法,虚线代表方法返回。
顺序图读取顺序:从上往下读取,我们首先看到调用了work方法,执行client的open方法,接着向下看,看到了client调用了print方法,又因为是server的方法,所以就进入了server内部,server的print方法中又调用了device的write方法,所以进入了device执行write方法,执行完成后,返回方法。