[java] 미디에이터 패턴

미디에이터 패턴은 객체 간의 상호 작용을 캡슐화하여 객체 간의 직접 통신을 방지하고 중재자를 통해 상호 작용하도록 하는 디자인 패턴입니다. 이 패턴을 사용하면 객체 간의 결합도를 낮출 수 있고, 코드 유지보수성을 향상시킬 수 있습니다.

미디에이터 패턴의 구성 요소

미디에이터 패턴은 다음과 같은 구성 요소로 구성됩니다:

미디에이터 패턴의 예시 (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 인터페이스를 통해 미디에이터와 통신합니다.

미디에이터 패턴은 객체 간의 결합도를 감소시키고 유연하고 확장 가능한 구조를 만들 수 있는 장점이 있습니다.

마치며

미디에이터 패턴은 객체 간의 직접적인 통신을 방지하여 유연하고 확장 가능한 구조를 만들 수 있습니다. 이 패턴을 활용하여 객체 간의 결합도를 줄이고 코드의 유지보수성을 향상시킬 수 있습니다.