A가 B를 참조하고 B가 A를 참조하는 그런 상황..

C++에서는 포인터와 전방선언으로 해결가능하고

자바에서는 빈번하게 쓰인다만,

이것은 객체들의 관계를 타이트하게 만들어주기 때문에 이렇게 만드는건 나쁜 설계라네.

그래서 사용되는 방법이 대충 두가지가 생각나는데

첫번째는

B는 여러가지 접근 메소드를 가지고 A는 B 메소드를 관찰하며 B의 상태변화에 따라 A도 적절하게 바꿔주는것.

두번째는

A는 B에 인터페이스로 넘기고 B에서는 인터페이스에 상태변화에 따라 알려주는것. 대충 옵저버 패턴이지.

뭐 어떤방식으로 만드느냐는 각자 마음이지만 개인적으로는 첫번째는 객체에 쓸데없는 메소드가 많아진다는 단점이 있어서..

두번째를 선호하지만...

ps. 객체 설계할 때 상호 참조 많이들 쓰시나여?