设计模式:UML类图


项目地址:https://gitee.com/caochenlei/design-pattern

第一章 UML类图:基本介绍

UML (Unified modeling language,统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果。

UML 本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和它们之间的关系,比如类、接口之间的关系。

画 UML 图与写文章差不多,都是把自己的思想描述给别人看,关键在于思路和条理,类图是描述类与类之间的关系的,是 UML 图中最核心的部分,在学习设计模式的时候,我们有必要掌握类图的使用。类与类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合。

第二章 UML类图:依赖关系

2.1、关系介绍

只要在方法局部变量方法参数位置方法返回值处使用了另外的类,他们就产生了依赖关系(dependence)。

2.2、代码演示

class Head {
    
    }
class Body {
    
    }
class Hand {
    
    }
class Leg {
    
    }

public class Person {
    
    
    public Person() {
    
    
        Head head;
        Body body;
        Hand hand;
        Leg leg;
    }
}

2.3、关系图示

idea中,选中要显示关系的类,右键Diagrams>Show Diagram...,然后在打开界面的工具栏选中Show Dependencies

idea中,依赖关系使用灰色虚线普通箭头进行关系指向。

第三章 UML类图:泛化关系

3.1、关系介绍

泛化关系(generalization)又叫做继承关系,他是依赖关系的一种特例,只要是实现了继承关系的类,都属于泛化关系。

3.2、代码演示

public class Person {
    
    
    private String name;
    private String sex;
    private Integer age;
}

class Chinese extends Person {
    
    }

3.3、关系图示

idea中,选中要显示关系的类,右键Diagrams>Show Diagram...,然后在打开界面的工具栏选中Show Dependencies

idea中,泛化关系使用深蓝色实线实心箭头进行关系指向。

第四章 UML类图:实现关系

4.1、关系介绍

实现关系(implementation)实际上就是 A 类实现 B 接口,他也是依赖关系的一种特例。

4.2、代码演示

//UserService.java
public interface UserService {
    
    }

//UserServiceImpl.java
public class UserServiceImpl implements UserService{
    
    }

4.3、关系图示

idea中,选中要显示关系的类,右键Diagrams>Show Diagram...,然后在打开界面的工具栏选中Show Dependencies

idea中,实现关系使用绿色虚线实心箭头进行关系指向。

第五章 UML类图:关联关系

5.1、关系介绍

关联关系(association)实际上就是类与类之间的联系,他也是依赖关系的一种特例。关联关系具有导航行,即:单向关系双向关系,关联关系还具有多重性,如:“1”(表示有且仅有1个)、“0…”(表示0个或者多个)、“0,1”(表示0个或者1个)、“n…m”(表示n个到m个)、“m…”(表示至少m个)、“*”(表示多个)。

5.2、代码演示

//Emp.java
public class Emp {
    
    }

//Dep.java
public class Dep {
    
    
    private List<Emp> emps;
}

5.3、关系图示

idea中,选中要显示关系的类,右键Diagrams>Show Diagram...,然后在打开界面的工具栏选中Show Dependencies

idea中,关联关系使用灰色普通箭头+灰色实心菱形进行关系指向。

第六章 UML类图:聚合关系

6.1、关系介绍

聚合关系(aggregation)表示的是整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,所以他具有关联的导航性与多重性。

聚合关系最典型的一个实例就是电脑与鼠标、键盘的关系,电脑离开了鼠标和键盘还是可以正常工作,他们并没有连在一起,可以通过USB接口插拔。

6.2、代码演示

class Mouse {
    
    }
class Keyboard {
    
    }

public class Computer {
    
    
    private Mouse mouse;
    private Keyboard keyboard;

    public void setMouse(Mouse mouse) {
    
    
        this.mouse = mouse;
    }

    public void setKeyboard(Keyboard keyboard) {
    
    
        this.keyboard = keyboard;
    }
}

6.3、关系图示

idea中,选中要显示关系的类,右键Diagrams>Show Diagram...,然后在打开界面的工具栏选中Show Dependencies

idea中,聚合关系使用灰色普通箭头+灰色实心菱形进行关系指向。

第七章 UML类图:组合关系

7.1、关系介绍

组合关系(composition)表示的是整体和部分的关系,整体与部分不可以分开。组合关系是关联关系的特例,所以他具有关联的导航性与多重性。

组合关系最典型的一个实例就是人体的构成,当一个正常的婴儿诞生的时候,他必然有手脚、头、身体,缺一不可,整体与局部不可分开。

7.2、代码演示

class Head {
    
    }
class Body {
    
    }
class Hand {
    
    }
class Leg {
    
    }

public class Person {
    
    
    private Head head = new Head();
    private Body body = new Body();
    private Hand hand = new Hand();
    private Leg leg = new Leg();
}

7.3、关系图示

idea中,选中要显示关系的类,右键Diagrams>Show Diagram...,然后在打开界面的工具栏选中Show Dependencies

idea中,组合关系使用灰色普通箭头+灰色实心菱形进行关系指向。

猜你喜欢

转载自blog.csdn.net/qq_38490457/article/details/114231049