单向和双向关联的区别
单向和双向关联的区别就在于,两个类是否需要互相知道。
如果类A需要知道类B,而类B也需要知道类A,那么这两个类就应该是双向关联的;
而如果只需要类A知道类B,而不需要类B知道类A,那么就是单向关联。
关联与依赖的对比:
相似之处:
关联暗示了依赖,二者都用来表示无法用聚合和组合表示的关系。
区别:
- 发生依赖关系的两个类都不会增加属性。其中的一个类作为另一个类的方法的参数或者返回值,或者是某个方法的变量而已。 发生关联关系的两个类,类A成为类B的属性,而属性是一种更为紧密的耦合,更为长久的持有关系。 在代码中的表现如下:
- 从关系的生命周期来看,依赖关系是仅当类的方法被调用时而产生,伴随着方法的结束而结束。关联关系当类实例化的时候产生,当类对象销毁的时候关系结束。相比依赖,关联关系的生存期更长。