未完成类之间的各种关系

Posted hmzmua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未完成类之间的各种关系相关的知识,希望对你有一定的参考价值。

一、依赖关系

假设A类的变化引起了B类的变化,就说明B依赖于A。
在UML图中,用虚线箭头表示类之间的依赖关系。
依赖关系有下面具体三种情况。

  • 1、A类是B类中的局部变量,这时,A的变化能够引起B变化,说明B依赖A.
  • 2、A类是B类方法中的一个参数,A变化同样能引起B变化。
  • 3、A类向B类发送消息,这样A也能使B发生变化,也能说B依赖A。
public class Driver 
    
    public void drive(Car car)      //类Car是Driver里一个方法的参数,说明Car的变化能带来Driver的变化,则说明Driver依赖Car
        
        car.move();
    


public class Car 

    public void move() 
    
        ...
    

二、泛化(继承)关系

A是B、C的父类,说明A是 B, C 的泛化。
在UML图中,泛化关系用实线空心三角形表示。在Java中,泛化关系用extends来实现。

public class Person 

    protected String name;
    protected int age;
    
    public void move() 
    
        ...
    

    public void say() 
    
        ...
    


public class Student extends Person 
    
    private String studentNo;
    public void study() 

        ...
    

在UML当中,对泛化关系有三个要求:

  • 1、子类与父类应该完全一致,父类所具有的属性、操作,子类应该全都有。
  • 2、子类中除了与父类一致的信息以外,还包括额外的信息。
  • 3、可以使用父类的实例的地方,也可以使用子类的实例。

三、关联关系

类之间有关联,比如客户和订单,一个客户有很多订单,一个订单对应一个客户,这就说他们之间存在关联。
在UML中,关联关系使用实线来连接
关联,通常将一个类的对象作为另一个类的属性

  • 1、双向关联
    你中有我我中有你。
public class Customer 

    private Product [] products;
    


public class Product 
    
    private Customer customer;
  • 2、单向关联
    只有一个类中以另外一个类作为属性
    用单向实心箭头表示。
  • 3、自关联
    一些类的属性对象类型为他自己
  • 4、重数性关联:表示一个类的对象与另一个类的对象连接的个数

    1..1 表示另一个类的一个对象只与一个该类对象有关系
    0..* 表示另一个类的一个对象与零个或多个该类对象有关系
    1..* 表示另一个类的一个对象与一个或多个该类对象有关系
    0..1 表示另一个类的一个对象没有或只与一个该类对象有关系
    m..n 表示另一个类的一个对象与最少m、最多n个该对象有关系

public class Form 
    private Button buttons[];
    ...  


public class Button 
    ...

四、聚合关系

表示整体和部分的关系。通常在定义了一个整体类后,再去分析这个整体类的组成结构,从中找出成员类,该整体类和成员类之间就形成了聚合关系。在聚合关系中,成员类是整体类的一部分,即成员对象是整体对象的一部分,但成员对象可以脱离整体对象独立存在。
在UML图中,聚合关系用带空心菱形的直线表示

public class Car 
    
    private Engine engine;
    
    public Car(Engine engine) 
    
    this.engine = engine;
    

    public void setEngine(Engine engine) 
    
        this.engine = engine;
    
    ...


public class Engine 
    ...    

五、组合关系

也就是整和部分的关系,但是整体与部分不可以分开。部分和整体具有统一的生存期,一旦整体对象不存在,部分对象也将不存在。同生共死。
在UML中,组合关系常用带实心菱形的直线表示。

public class Head 
    private Mouth mouth;
    public Head 
        mouth = new Mouth();
        


public class Mouth 
...

六、实现关系

用来规定接口和实现接口的类或者构建结构的关系,接口是操作的集合,而这些操作就用于规定类或者构建的一种服务。
这里没学到接口,先放一放

以上是关于未完成类之间的各种关系的主要内容,如果未能解决你的问题,请参考以下文章

未更新完毕

JavaScript技巧(未完成)

Android 目的地片段未出现在导航中

UML各种线的含义

面向对象

Hibernate5.x表与表之间的关系操作代码实现