码迷,mamicode.com
首页 > 其他好文 > 详细

【未完成】类之间的各种关系

时间:2019-06-08 22:56:58      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:组合   另一个   定义   就是   out   集合   表示   rod   lock   

一、依赖关系

假设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 {
...
}

六、实现关系

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

【未完成】类之间的各种关系

标签:组合   另一个   定义   就是   out   集合   表示   rod   lock   

原文地址:https://www.cnblogs.com/hmzmua/p/10991830.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!