2009년 11월 22일 일요일

Mediator Pattern

Mediator Pattern

Mediator : 중개인, 조정자 라는 뜻이지만 패턴에서는 의지할수 있는 중개인으로 생각하는 하세요.
곤란한 일이 생기거나 모임 전체에 영향을 미칠만한 일이 발생하면 중개인에게 알리고, 중개인의 지시대로 실행합니다. 모임의 각 회원이 멋대로 다른 회원과 대화해서 판단하는 것이 아니라, 언제나 중개인을 통해서 행동하도록 합니다. 한편 중개인은 모임의 회원으로부터 올라온 보고를 기초로 판단을 해서 각 회원에게 지시를 내립니다. Mediator 패턴을 이와같은 성격의 디자인 패턴입니다.


예제프로그램


결과화면
이번에는 결과화면을 넣어야 할듯싶어서 이렇게 넣었습니다.
1. 로그인 다이얼로그 모습

2. 사용자 로그인이 선택되어 있으면, 사용자 명은 유효상태이지만 패스워드는 무효상태

3. 사용자 명에 한 문자라도 입력되어 있으면, 패스워드는 유효상태이지만 OK 버튼은 무효상태

4. 패스워드에도 문자가 입력되면 OK 버튼도 유효

5. 게스트 로그인을 하면 사용자 명도 패스워드도 무효상태

6. 패스워드가 입력되어 있어도 사용자 명을 삭제하면 OK버튼과 패스워드는 무효


여담이지만... 이번 예제프로그램은 좀 마니 까다로웠습니다 역시 자바와 C#은 서로 싫어합니다 -0-
클래스다이어그램을보고 새로 짜야하였기에.. ㅡㅠ
물론 아래와 같은 사항을 만족하는 프로그램을 그냥 짜면 초 쉽습니다. 단지. Mediator 패턴에 따라 하니 좀.... 귀차는 구석이 많더군요.


Mediator Pattern의 등장인물

Mediator(조장자, 중개자)의 역할
: Mediator의 역할은 Colleague 역할과 통신을 해서 조정을 실행하기 위한 인터페이스를 결정
  예제프로그램은 Mediator 인터페이스

ConcreteMediator(구체적인 조정자, 중개자)의 역할
: Mediator 역할의 언터페이스를 구현해서 실제의 조정을 실행
  예제프로그램에서는 LoginForm 클래스

Colleague(동료)의 역할
: Mediator 역할과 통신을 실행할 인터페이스를 결정
  예제프로그램에서는 Colleague 인터페이스

ConcreteColleague(구체적인 동료)의 역할
: Colleague 역할의 인터페이스를 구현
  예제프로그램에서는 ColleagueButton, ColleagueTextBox, ColleagueRadioButton의 각 클래스


 출처 : Java 언어로 배우는 디자인 패턴 입문

댓글 없음:

댓글 쓰기