디자인 패턴 - 미디에이터 패턴(Mediator Pattern)
디자인 패턴이란?
디자인 패턴이란? 게시글을 참고하자.
생성(Creational) 패턴 | 구조(Structural) 패턴 | 행동(Behavioral) 패턴 |
---|---|---|
Singleton | Adapter | Command |
Abstract Factory | Composite | Interpreter |
Factory Method | Decorator | Iterator |
Builder | Facade | Mediator |
Prototype | Flyweight | Memento |
Proxy | Observer | |
State | ||
Strategy | ||
Template Method |
미디에이터 패턴
미디에이터 패턴은 중재자 패턴이라고도 불린다. 이 패턴은 모든 클래스간의 상호작용(로직)을 캡슐화시켜서 하나의 클래스에 위임하여 처리하는 패턴이다.
M:N → M:1 의 관계로 만들어주는 패턴
유지 보수 및 재사용 확장성에 유리한 패턴이다. 객체들 간에 소통이 잘 되어있으나 복잡할 때 사용한다
비행기끼리 소통하는게 아닌, 관제탑을 중계로 소통하는 것과 같음
구조
- Mediator Colleague 객체간의 소통을 위한 인터페이스
- Colleague Mediator를 통해 다른 Colleague와 소통을 위한 인터페이스
- ConcreteMediator Mediator 구현체로 Colleague간의 상호 소통을 위해 Colleague들을 가지고 있으며 소통들을 조정함
- ConcreteColleague Colleague 인터페이스의 구현체
장점, 단점
장점
- 효율적인 자원 관리가 가능하다
- 객체간의 통신을 위해 서로 간에 참조할 필요가 없어진다
- 객체들 간 수정할 필요 없이 관계를 수정할 수 있다
단점
- 특정 어플리케이션 로직에 맞춰져있어서 다른 어플리케이션에 재사용하기가 힘들다
- 미디에이터 패턴 사용 시 미디에이터 객체에 권한이 집중화되어서 미디에이터 객체가 굉장히 크고 복잡해진다.
댓글남기기