一文读懂UML类图

平时阅读一些分析类文章或是设计应用架构时,没少与UML类图打交道。实际上,UML类图中最常用到的元素就几种。但熟练,需要一个过程,大家熟记并多加使用,一定能掌握。

图①

如上图,它就代表一个类(Class)。类图分三层,第一层显示类的名称,如果是抽象类,则就用体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或行为。注意前面的符号,"+" 表示 public, "-" 表示 private,"#" 表示 protected。

代码如下:

public class Stack {
    
    public int MAXSIZE;
    public int top;
         
    public void push() {
        //省略一些代码
    }
    
    public void pop() {
        //省略一些代码
    }
    
}
复制代码
图②

如上图,它表示一个接口(Interface),与类图的区别主要是顶端有<>显示。第一行是接口名称,第二行是接口方法。

代码如下:

interface OnClickListener {
    
    void onClick();
    
}
复制代码
图③

如上图,它表示继承的关系,SubStack是子类,Stack是父类。继承关系用空心三角形+实线来表示。

代码如下:

public class Stack {
    
    public int MAXSIZE;
    public int top;
         
    public void push() {
        //省略一些代码
    }
    
    public void pop() {
        //省略一些代码
    }
    
}

public class SubStack extends Stack {
    
    public int count;
         
    public void cleanAll() {
        //省略一些代码
    }
    
}
复制代码
图④

如上图,它表示实现的关系,Stack类实现了OnClickListener接口。实现接口用空心三角形+虚线来表示。

代码如下:

public class Stack implements OnClickListener {
    
    public int MAXSIZE;
    public int top;
         
    public void push() {
        //省略一些代码
    }
    
    public void pop() {
        //省略一些代码
    }
  
    @Override
    public void onClick() {
        
    }
    
}
复制代码
图⑤

如上图,它表示关联关系。关系关系用实线箭头来表示。

代码如下:

public class People {
    private Money money;
}
复制代码
图⑥

如上图,公司类和员工类,每个员工都是属于一家公司的,一家公司可以有很多员工。所以它们之间满足聚合的关系。聚合表示一种弱的"拥有"关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。(PS:空壳公司不就没有员工么)

聚合关系用空心的菱形+实线来表示。

代码如下:

public class Company {
    private List<Staff> staffs;
}
复制代码
图⑦

如上图,它表示组合关系。**组合是一种强的"拥有"关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。**在这里人和手就是组合关系,因为它们是部分和整体的关系,并且手和人的生命周期是相同的。组合关系用实心的菱形+实线来表示。

代码如下:

public class People {
  private Hand hand;
  public People() {
    hand = new Hand();
  }
}
复制代码
图⑧

如上图,它表示依赖关系,用虚线箭头表示。在这里人要生存,需要食物和水,人依赖于食物和水。

代码如下:

public class People {
  public eat(Food food,Water water) {
    
  }
}
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值