UML类图的理解。2018-09-30

UML类图的理解:

主要是查看一些框架的时候,经常看见一些UML类图方便一下。。。闲话不多开始。

  • UML分类

    • 继承
    • 实现
    • 关联
    • 聚合
    • 组合
    • 依赖

继承

特点:空心三角箭头 + 实线
代码如下:

public class Person {

    private String name = "Jack";

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    protected void playBasketball()
    {
        pass();
    }

    private void say()
    {

    }
}
-----
public class Student extends Person {

    //学号。。
    private String studentNo;

    public void study(){
        System.out.println("上课的方法");
    }

}
---

public class Teacher extends Person {

    private String teacherNo;

    public void teach(){
        System.out.println("教学");
    }

}

UML类图如下:


20180930008.png

特点: 空心三角箭头 + 实线


实现

特点:空心三角箭头 + 虚线
代码如下:

public interface Fly {

    void fly();

}
---
public class Bird implements Fly {
    @Override
    public void fly() {

    }
}

UML类图如下:


20180930009.png

关联

特点:箭头 + 实线
代码如下:

public class Address {  
}
---
public class Student {
    private Address address;

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }
}

UML类图如下:


20180930010.png

特点:就是Student里面关联了Address这个属性。。一会和后面的聚合,组合有点区别。。


聚合

特点:空心菱形 + 实线 + >
代码如下:

public class Engine {

    public void start(){
        System.out.println("发动机发动");
    }

}
---
public class Wheel {

    public void run(){
        System.out.println("轮子转动");
    }

}
public class Car {
    private Engine engine;
    private Wheel wheel;

    public Car(Engine engine, Wheel wheel) {
        this.engine = engine;
        this.wheel = wheel;
    }

    public void run(){
        engine.start();
        wheel.run();
    }
}

UML类图如下:


20180930011.png

特点: 这几个类可以单独存在,不存在生命周期的依赖关系。


组合

特点:实心菱形 + 实线 + >
代码如下:

public class Eye {
}
public class Face {
}
public class Person {

    private Eye eye;
    private Face face;

    public Person() {
        eye = new Eye();
        face = new Face();
    }
}

UML类图如下:


20180930012.png

特点:组合呢,就是生命周期依靠Person这个类, 如果这个类死啦。。那个Eye和Face都没有啦。


依赖

特点:< + 虚线
代码如下:

public class Car {
    public void run(){
        
    }
}
---

public class Driver {

    public void drive(Car car){
        car.run();
    }


}

UML类图如下:


20180930013.png

特点:这个是一个方法里面的参数类型。 这个就是依赖。。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 设计模式概述 在学习面向对象七大设计原则时需要注意以下几点:a) 高内聚、低耦合和单一职能的“冲突”实际上,这两者...
    彦帧阅读 3,804评论 0 14
  • 在UML 2.0的13种图形中,类图是使用频率最高的UML图之一。Martin Fowler在其著作《UML Di...
    雷雷_zll阅读 13,393评论 0 14
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,002评论 25 709
  • 今天整理了去年和今年的手绘画。 看得到自己的进步,呃呃呃……之前以为自己画了不少呢……结果一整理……也就一个月两三...
    水晶雪梨阅读 138评论 0 0
  • 昨天说到行动为王,那就把读到英语启蒙书和自己在家的实践结合起来,写写观察手记吧。 时间:6月23日——6月30日 ...
    兔思思阅读 162评论 0 0