[행위 패턴] Mediator pattern (미디에이터 패턴)
서로 관련된 객체 사이의 복잡한 통신과 제어를 한 곳으로 집중시키고자 할 때
(원본 출처: https://www.tutorialspoint.com/design_pattern/design_pattern_quick_guide.htm)
Mediator 패턴은 여러 객체 또는 클래스 간의 통신 복잡성을 줄이기 위해 사용됩니다. 이 패턴은 일반적으로 서로 다른 클래스 간의 모든 통신을 처리하고 느슨한 결합으로 코드를 쉽게 유지 관리 할 수있는 조정자 클래스를 제공합니다. 중재자 패턴은 행동 패턴 카테고리에 속합니다.
Implementation
우리는 여러 사용자가 대화방에 메시지를 보낼 수있는 대화방의 예를 통해 조정자 패턴을 시연하고 있으며 모든 사용자에게 메시지를 표시하는 것은 대화방의 책임입니다. 우리는 ChatRoom과 User라는 두 클래스를 만들었습니다. 사용자 개체는 ChatRoom 메서드를 사용하여 메시지를 공유합니다.
MediatorPatternDemo, 우리 데모 클래스는 User 객체를 사용하여 그들 사이의 통신을 보여줍니다.
Step 1
중재자 클래스를 만듭니다.
ChatRoom.java
import java.util.Date; public class ChatRoom { public static void showMessage(User user, String message){ System.out.println(new Date().toString() + " [" + user.getName() +"] : " + message); } }
Step 2
유저클래스를 만듭니다.
User.java
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); } }
Step 3
User 개체를 사용하여 두 개체 사이의 통신을 표시합니다.
MediatorPatternDemo.java
public class MediatorPatternDemo { public static void main(String[] args) { User robert = new User("Robert"); User john = new User("John"); robert.sendMessage("Hi! John!"); john.sendMessage("Hello! Robert!"); } }
Step 4
결과를 확인합니다.
Thu Jan 31 16:05:46 IST 2013 [Robert] : Hi! John! Thu Jan 31 16:05:46 IST 2013 [John] : Hello! Robert!
'Development > Java' 카테고리의 다른 글
[생성 패턴] Prototype pattern (프로토타입 패턴) (0) | 2017.03.26 |
---|---|
[행위 패턴] Memento pattern (메멘토 패턴) (0) | 2017.03.26 |
[행위 패턴] Interpreter pattern (인터프리터 패턴) (0) | 2017.03.26 |
[구조 패턴] Flyweight pattern (플라이웨이트 패턴) (0) | 2017.03.26 |
[행위 패턴] Chain of responsibility pattern (역할 사슬 패턴) (0) | 2017.03.26 |