UML类图

UML 类图

今天讲讲UML类图, 是不是有的伙伴还不清楚什么是合成/聚合/关联/依赖关系, 像抽闲类/普通类/接口以及他们的继承/实现关系我们用UML类图又怎么表示的呢?

刚开始学设计者模式的时候我对这些基础的概念确实懵逼了一段时间,不过这些关系拿出实际分钟我们就可以理解的特别清楚了

类表示方法为一个一列三行的矩形

  1. 第一层表示类的名称.如果名称为斜体则表示这个类为抽象类
  2. 第二层表示类的特性,即字段属性
  3. 第三层表示方法行为
  4. 属性和方法前面的符号类别 即方法和属性的访问权限
    • '+'表示public
    • '_'表示private
    • '#'表示protect
    • '~'表示package private
动物
+年龄
+新陈代谢(氧气,水)
+繁殖
大雁
+下蛋
+飞()

接口

接口的表示方法分为两种一种为一列两行的表示方法,一种为棒棒糖表示法(棒棒糖表示法百度吧,不好画)

  1. 第一层上面有<>显示和接口名称
  2. 第二层有接口方法
<< interface >>
飞翔
+飞()

继承

继承关系用空心三角形+实线表示 -▷

实现

我们实现一个接口用空心三角形+虚线表示 --▷

关联关系

关联关系指的是一个类A知道另一个类B,也就是B类作为A的属性
我们通过 实线箭头来表示 ->

public class Penguin extends Bird{

    private Climate climate; //企鹅的生存跟气候有很大关系,所有这里引用到了气候,所以 气候和企鹅是关联关系.

    @Override
    void layEggs() {
        System.out.println("下蛋");
    }
}

聚合关系

聚合关系表示一种弱拥有关系,体现的是A对象包含B对象,但是B对象不是A对象的一部分
聚合关系用空菱形+实线箭头来表示◇->

public class WidegooseAggregate {

    private List<Widegoose> widegooses; //大雁群中有大雁 大雁是燕群中的一部分 所以燕群和大雁是聚合关系  他两个是一种弱拥有关系
}

合成关系

合成关系也叫组合关系,是一种强的拥有关系,体现了严格的部分和整体的关系,部分这真题的生命周期一致.

合成关系通过实体菱形+实现箭头表示 ◆->

合成关系中还有基数这个概念基数表示一段类有几个实力,使用方法是写在菱形和箭头下方,关联关系和聚合关系也可以有基数.

    public abstract class Bird extends Animal {
    	public Feather feather; //羽毛
   	 	public String mouth; //嘴
    	public Wing wing; //鸟儿拥有翅膀 这里鸟儿和翅膀应该是组合/合成关系

    	public  Bird() {
        	//这里鸟和羽毛 翅膀 应该是组合关系,因为他们的生命周期应该保持一致
        	wing = new Wing();
        	feather = new Feather();
        	Duck duck = new Duck();
    }

依赖关系

依赖关系表示对象行为所依赖的对象,即行为的参数

依赖关系用虚线箭头表示

public abstract class Animal {

    public int age;


    //繁殖
    public void reproduction(){}
    //新陈代谢
    //新晨代谢依赖氧气和水  这里表示的是依赖关系
    public void metabolize(Oxygen oxygen, Water water){}
}
关系名称表示方法示例
继承关系空心三角形+实线表示-▷
实现关系空心三角形+虚线表示–▷
关联关系实线箭头->
聚合关系空菱形+实线箭头来表示◇->
合成关系实体菱形+实现箭头◆->
依赖关系虚线箭头–>

源码地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值