두 손끝의 창조자

상호 참조 해결하기 본문

프로그래밍

상호 참조 해결하기

codinglog 2021. 8. 4. 16:05

인터페이스 A, 인터페이스 B가 있다.

인터페이스 A를 구현하는 구현체는 인터페이스 B가 필요하고

인터페이스 B를 구현하는 구현체는 인터페이스 A가 필요한 상황이다.

그러기 위해서 A 구현체의 생성자는 B 인터페이스 오브젝트를 필요로 하고,

B 구현체의 생성자는 A 인터페이스 오브젝트가 필요하게 된다.

그러면 아래와 같이 무한 참조 상황이 된다.

A a = new AImpl( new BImpl( new AImpl( ....

 

이럴때는 A의 구현체와 B의 구현체 독립적으로 만들지 말고, 둘 기능을 조합하는 구현체를 만들자.

class CompsiteImpl implement A, B

A a = new CompsiteImpl( );

B b = new CompsiteImpl( );

반응형
Comments