[java] 미디에이터 패턴
미디에이터 패턴은 객체 간의 상호 작용을 캡슐화하여 객체 간의 직접 통신을 방지하고 중재자를 통해 상호 작용하도록 하는 디자인 패턴입니다. 이 패턴을 사용하면 객체 간의 결합도를 낮출 수 있고, 코드 유지보수성을 향상시킬 수 있습니다.
미디에이터 패턴의 구성 요소
미디에이터 패턴은 다음과 같은 구성 요소로 구성됩니다:
- 미디에이터 (Mediator): 객체 간 통신을 총괄하고 중계하는 역할을 합니다.
- 동료 객체 (Colleague): 미디에이터와 통신하며, 다른 동료 객체와 직접 통신하지 않습니다.
미디에이터 패턴의 예시 (Java)
아래는 자바를 사용한 미디에이터 패턴의 간단한 예시입니다.
미디에이터 (Mediator)
public interface ChatRoom {
void sendMessage(String message, Colleague colleague);
}
public class ConcreteChatRoom implements ChatRoom {
@Override
public void sendMessage(String message, Colleague colleague) {
// 중계 및 처리 로직 구현
}
}
동료 객체 (Colleague)
public abstract class Colleague {
protected ChatRoom mediator;
public Colleague(ChatRoom mediator) {
this.mediator = mediator;
}
public abstract void send(String message);
public abstract void receive(String message);
}
public class ConcreteColleague extends Colleague {
public ConcreteColleague(ChatRoom mediator) {
super(mediator);
}
@Override
public void send(String message) {
mediator.sendMessage(message, this);
}
@Override
public void receive(String message) {
// 메시지 수신 처리 로직 구현
}
}
이 예시에서 ConcreteChatRoom
이 미디에이터 역할을 하고, ConcreteColleague
가 동료 객체 역할을 합니다. 동료 객체는 ChatRoom
인터페이스를 통해 미디에이터와 통신합니다.
미디에이터 패턴은 객체 간의 결합도를 감소시키고 유연하고 확장 가능한 구조를 만들 수 있는 장점이 있습니다.
마치며
미디에이터 패턴은 객체 간의 직접적인 통신을 방지하여 유연하고 확장 가능한 구조를 만들 수 있습니다. 이 패턴을 활용하여 객체 간의 결합도를 줄이고 코드의 유지보수성을 향상시킬 수 있습니다.