虽然我想我明白aggregation和composition,我有困难的理解bi-directional和uni-directional关联.我已经阅读了与bi-directional关联,两个类都知道彼此和uni-directional关联只有一个类知道这种关系.然而,这个解释对我来说似乎太抽象了,我想知道这对我的代码和我正在编写的程序有什么意义.如果你能够提供一个简单的例子说明这两个如何转换为代码(我更喜欢c ++,但它可以包括伪代码),那将是非常好的.
Jav*_*ier 25
双向关联可从两端导航.例如,给定以下类(为简单起见,假设两端的关联为0..1)
class Parent {
Child* children;
}
class Child {
Parent* parent;
}
Run Code Online (Sandbox Code Playgroud)
你可以从a Parent到它的孩子,反之亦然:父母知道它的孩子,孩子知道它的父母,和(如果this.parent!=null)this.parent.child==this(不然它不是同一个关联).
Parent <---------> Child
Run Code Online (Sandbox Code Playgroud)
然而,如果没有指针Parent在Child:
class Child { }
Run Code Online (Sandbox Code Playgroud)
这将是一个单向的关联:你可以从父母到孩子,但你不能从孩子回到父母.
Parent ----------> Child
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17706 次 |
| 最近记录: |