2. What is
Mediator
Pattern?
• 중재자 패턴(mediator pattern), 조정자
패턴은 소프트웨어 공학에서 어떻게 객
체들의 집합이 상호작용하는지를 함축
해놓은 객체를 정의한다. 이 패턴은 프
로그램의 실행 행위를 변경할 수 있기
때문에 행위 패턴으로 간주된다.
• 중재자 패턴을 사용하면 객체 간 통신
은 중재자 객체 안에 함축된다. 객체들
은 더 이상 다른 객체와 서로 직접 통신
하지 않으며 대신 중재자를 통해 통신
한다. 이를 통해 통신 객체 간 의존성을
줄일 수 있으므로 결합도를 감소시킨다.
6. 코드로 봅시다!
인터페이스
중재자는 유저를 추가,삭제, 메시
지 전송을 하는 역할을 한다.
인터페이스
Colleague들은 통신할 각각에 대해 알필
요없이 중재자만 알고 있으면 된다!
7. 코드로 봅시다! 유저클래스 실제 구현
SendMessages와 ReceiveMessages를 구현
중재자를 통해 전달할 메시지를 입력한다!
이전에는 모두에게 메시지를 전달하려면 각각
에 대해 알고 하나하나 메시지를 전달해야했다.
ChatMediator는 모두가 통신할 수 있도록
User들의 정보를 저장할 List를 가지고, 추가,
삭제등의 기능을 구현한다.
그리고 메시지를 주고받을 수 있도록 기능
을 구현해준다.
8. 코드로 봅시다!
이렇게 중개자를 만들고, 유저를 생성할 때, 중재자
에대한 정보를 넘긴다.
그리고 중재자는 채팅에 참여할 유저들을 추가한
다.
그리고 메시지를 각각에대해 모두 보낼필요없이
한번만 보내면 된다.
방에 입장할 때 중재자에게 등록만 해준다면
김기섭은 모든 친구들에게 메시지를 보낼 때 새
로 들어온 친구에 대해 몰라도 통신을 할 수 있
다.!
9. Mediator
Pattern
Advantages
• 장점
• 객체들간의 상호작용이 하나의 객체로
모아지기 때문에, 객체들이 서로를 직
접 참조하지 않게 되어 객체들이
loosely coupling 되는 효과가 있다!
• 객체들간의 상호작용 로직이 객체들과
분리되어 추상화되므로, 상호작용 로직
만을 쉽게 수정가능
• 런타임에 변경할 수 있다
• 각 객체들이 별도로 재사용이 가능해지
게 됩니다.