Java Design Pattern - Mediator Pattern

업데이트:

Design Pattern

  • 과거의 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 이름을 붙여, 이후에 재이용하기 좋은 형태로 특정의 규약을 묶어서 정리한 것이다.
  • 디자인 패턴은 알고리즘이 아니라 상황에 따라 자주 쓰이는 설계 방법을 정리한 코딩 방법론일 뿐이며 모든 상황의 해결책이 아니다.

Behavioral Patterns, 행위 패턴

  • 객체간의 상호작용과 책임을 중시하는 패턴이다.
  • 한 객체가 혼자 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배하면서 객체 사이의 결합도를 최소화하는 것에 중점을 두는 패턴이다.

Mediator Pattern

  • 서로 관련된 객체 사이의 복잡한 통신과 제어를 한 곳으로 집중시키는 패턴이다.

Example

public class ChatRoom {

  public static void showMessage(User user, String message) {
    System.out.println(LocalDateTime.now().toString() + " [" + user.getName() + "] : " + message);
  }

}
  • 대화를 나눌 ChatRoom 클래스를 구현한다.
public class User {

  private String name;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public User(String name) {
    this.name = name;
  }

  public void sendMessage(String message) {
    ChatRoom.showMessage(this, message);
  }

}
  • 사용자 정보와 ChatRoom을 이용하여 메시지 전송을 위한 User 클래스를 구현한다.
public class MediatorPatternMain {

  public static void main(String[] args) {
    User robert = new User("Robert");
    User john = new User("John");

    robert.sendMessage("Hi! John!");
    john.sendMessage("Hello! Robert!");
  }

}
  • 각 유저를 생성하여 메시지를 전송하면 ChatRoom을 통해 모든 메시지가 전송되는 것을 확인 할 수 있다.

Source

Sample Code는 여기에서 확인 가능합니다.

댓글남기기