티스토리 뷰

디자인 패턴 - 행동 패턴 10개 중

  • 중재자 패턴
  • 옵저버 패턴

에 대해 공부한 내용을 포스팅 한다.

반복자는 포스팅 하지 않으려고 한다!


중재자 패턴

중재자 패턴은 혼란스러운 의존 관계들을 줄일 수 있는 행동 디자인 패턴이다.

객체간의 직접 통신을 제한하고 중재자 객체를 통해서만 통신이 가능하게 한다.

 

중재자 없이 각 객체간의 통신만을 하게 되면 객체의 소통 모형은 다음과 같아진다.

중재자 패턴 사용 전

중재자 패턴을 사용하면 위의 복잡한 상관 관계를 줄일 수 있다.

중재자 패턴 사용 후

이렇게 되면 객체간의 의존 관계를 줄일 수 있을 뿐 아니라 재사용도 용이해진다.

 

중재자 패턴의 장점은 아래와 같다.

  1. 단일 책임 원칙을 위배하지 않는다.
  2. 개팡 폐쇄 원칙을 준수한다.
  3. 프로그램의 다양한 컴포넌트 간 결합도를 줄일 수 있다.
  4. 개별 컴포넌트의 재사용이 쉬워진다.

 

단점도 있다.

  1. 중재자가 전지전능한 객체가 되어 버릴 수 있다.

 


옵저버 패턴

여러 객체에게 자신이 관찰중인 객체에 발생하는 모든 이벤트에 대한 알림을 보내는 구독 매커니즘이다.

 

상시로 변하는 객체가 있다. 이 객체의 상태를 알아야 하는 객체가 있다면 어떻게 해야할까? 

먼저 변화하는 상태를 알아야 하는 객체의 리스트를 작성해둔다. 그 리스트의 객체들에게만 변화를 알리는 알림을 보내면 모든 객체들에게 알림을 보내지 않아도 된다.

옵저버 패턴 모형

객체에 옵저버를 두면 객체가 변화할 때 옵저버 안의 구독자 list를 참조하여 자신의 변화를 알려주게 된다.

 

이런 옵저버 패턴의 장점은 다음과 같다.

  1. 개방 폐쇄 원칙을 준수한다.
  2. 런타임에 객체간의 관계를 형성 가능하다.

 

하지만 단점도 있다.

  1. 구독자 list안에 있는 객체들은 객체의 변화가 무관하더라도 알림을 무조건으로 받아야한다.

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함