java-对象间关系

    简单来说对象间存在 依赖、关联、聚合、组合4中关系,耦合度依次升高。

      1.依赖。A对象做一件事时需要借助B对象的帮助,即A依赖B,实现上可用A的局部变量或者A中的方法形参来表示。use-a的含义。

class Car {   
    public static void run(){   
        System.out.println("汽车在奔跑");   
    }   
}   
     
class Driver {   
    //使用形参方式发生依赖关系   
    public void drive1(Car car){   
        car.run();   
    }   
    //使用局部变量发生依赖关系   
    public void drive2(){   
        Car car = new Car();   
        car.run();   
    }   
    //使用静态变量发生依赖关系   
    public void drive3(){   
        Car.run();   
    }   
}  

2.关联是依赖关系的持久性表现,可以理解为has-a的含义,将关联可以细分为聚合和组合2种实现。

         2.1  聚合是将对象B作为类A的成员变量,且各自含有各自的生命周期。可用set方法实现,代码表现如下:

class People{  
    Car car;  
    House house;   
    //聚合关系中作为成员变量的类一般使用set方法赋值  
     public void setCar(Car car){  
        This.car = car;  
    }  
    public void setHouse(House house){  
        This.house = house;  
    }  
  
    public void driver(){  
        System.out.println(“车的型号:”+car.getType());  
    }  
    public void sleep(){  
        System.out.println(“我在房子里睡觉:”+house.getAddress());  
    }  
}  

        2.2 组合,contain-a 关系,也是一种关联关系,同生命中期,一般用成员变量来实现,用构造方法进行赋值。代码表现如下:


class People{  
    Soul soul;  
    Body body;   
    //组合关系中的成员变量一般会在构造方法中赋值  
     Public People(Soul soul, Body body){   
        This.soul = soul;  
        This.body = body;  
    }  
  
    Public void study(){  
        System.out.println(“学习要用灵魂”+soul.getName());  
    }  
    Public void eat(){  
        System.out.println(“吃饭用身体:”+body.getName());  
    }  
} 

3. 其他的还有继承、实现这2种关系,是比较好理解的。

猜你喜欢

转载自blog.csdn.net/alspd_zhangpan/article/details/103091969