본문 바로가기
architecture

observer design pattern example

by kanlee2010 2022. 11. 29.

위 그림에서 MyTextView->draw() 와 MyGraphView->draw() 를 사용하고

MyIntDocument->getData()를 사용해야 하는 경우 상호간 양방향 참조를 하고 있습니다.

이를 개선하기 위해서 아래와 같이 변경하면 MyTextView와 MyGraphView에서 MyDocument로만 의존성이 있게 됩니다.

MyIntDocument에서 MyTextView로의 의존성은 Observable에서 Observer 인터페이스 방향으로 추상화 되었습니다.

위 그림에서 각 구현체 객체들의 일관된 인터페이스로 통신하는 것이 더 좋을 것 같습니다. 의존성 역전(DIP)의 SOLID 원칙을 추가해서 구현해 보면 아래와 같이 MyDocument와 MyView의 인터페이스를 라이브러이 안에 가두어 고정시키고 이를 상속하여 구체화 시켜서 구현하는 방식으로 실제 활용 할 수 있습니다.

'architecture' 카테고리의 다른 글

composite design pattern example  (0) 2022.11.29
[My cheat-sheet] PUML  (0) 2021.09.29
[My cheat-sheet] Design Patterns  (0) 2021.07.03

댓글