区分依赖,关联和聚集关系

来源:互联网 发布:unity3d 安卓包调试 编辑:程序博客网 时间:2024/05/01 22:45

关联和聚集的相同之处:当对象A和对象B之间存在依赖关系时,对象A都有可能调用对象B的方法。

1)依赖关系的特征

对于两独立的系统,当A系统负责构造B系统的实例,或者依赖另一个系统的服务时,这两系统之间主要体现为依赖关系。

例如:自行车Bicycle和打气筒Pump

public class Bicycle{    /*给轮胎打气*/    public void expand(Pump pump){        pump.blow();    }}

2)关联关系的特征

对于两独立的系统,当A系统的实例和B系统的实例存在特定的对应关系时,该两系统之间为关联关系。(从业务上讲)

例如:人和Person和自行车Bicycle

public class Person{    private Bicycle bicycle;//主人的自行车        public Bicycle getBicycle(){        return bicycle;    }    public void setBicycle(Bicycle bicycle){        this.bicycle=bicycle;    }    /**骑自行车去上班*/    public void goToWork(){        bicycle.run();    }}
?以上关联关系中存在依赖关系,主人依赖自行车去上班。

?从业务上讲,A依赖B,A依赖B才能成功;A关联B,A和B具有特殊的关系或者特殊的利益,A的成功不一定需要B。


3)聚集关系的特征

当系统A加入到系统B中,成为系统B的组成部分时,系统B和系统A为聚集关系。

例如:自行车和响铃,电脑和主板

public class Bicycle{    private Bell bell;    public Bell getBell(){        return bell;    }    public void setBell(Bell bell){        this.bell=bell    }    /**发出铃声*/    public void alert(){        bell.ring();    }}



0 0
原创粉丝点击