탐색가능성(navigability)이다.
두 객체 사이에 협력이 필요하고, 두 객체 관계가 영구적이라면
연관관계를 이용해 탐색 경로를 구현하기도 한다.
예를 들어, Order에서 OrderLineItem 으로 탐색이 가능하다.
Order를 알면, Order를 통해 원하는 OrderLineItem을 찾을 수 있다.
class OrderLineItem {
public void validate() {
}
}
class Order {
private List<OrderLineItem> orderLineItems;
public void place() {
validate();
ordered();
}
private void validate() {
for (OrderLineItem orderLineItem : orderLineItems) {
orderLineItem.validate();
}
}
private void ordered() {
}
}
연관관계라는 개념이 있는 것이고,
이를 구현할 수 있는 대표적인 방법 중 하나가 객체 참조
가 있는 것이다.
개념과 그 구현이 1 대 1 뿐이라는 생각을 해선 안 된다.