Latest web development tutorials

중개 모델

중개 모델 (중재자 패턴) 오브젝트와 복수의 클래스들 사이의 통신의 복잡성을 감소시키기 위해 사용된다. 이 모델은 일반적으로 유지하는 코드를 더 쉽게, 다른 클래스, 느슨하게 결합에 대한 지원 간의 통신을 처리하는 중간 클래스를 제공합니다. 중재자 패턴의 행동 패턴을 속한다.

소개

의도 : 오브젝트의 세트를 캡슐화시킨 오브젝트의사용은 느슨한 결합을 명시 적 상호 참조에서 중간 유지 객체를 상호 작용하고, 독립적으로 상호 작용을 변경할 수있다.

주로 해결 : 물체와 물체 사이의 관계가 많이 있는데, 이는 필연적으로 시스템의 구조로 이어질 매우 복잡하게하지만, 목적이 변경 될 경우, 우리는 또한 그와 관련된 객체를 추적하고 적절한 처리를 할 필요 .

이 때 사용하는, 서로 결합 여러 클래스가 네트워크 구조를 형성한다.

수정하는 방법 : 상기 한 네트워크 구조 별 구조로 구분된다.

키 코드 : 동료 사이의 통신은 별도의 클래스를 캡슐화하는 객체.

적용 예 : 1, WTO에 중국의 가입은 여러 나라가 서로 복잡한 구조와 무역 이전에, 그것은 서로 무역 WTO 국가입니다.2, 공항 예약 시스템. 3, C (컨트롤러) M (모델)와 V (보기) 중재자 MVC 프레임 워크.

장점 : 1 클래스의 복잡도를 감소 일대로 변환한다.2, 클래스 사이의 각각의 디커플링. 3, 데메테르의 원칙에 부합한다.

단점 : 대형 브로커는 복잡하고 유지하기 어려워 질 것입니다.

사용 시나리오 : 한 개체의 구조를 재사용하도록 혼란스럽고 어려운 간의 의존성에 이르는 시스템보다 복잡한 참조 관계의 물체 사이에 존재한다.2, 여러 클래스의 동작을 캡슐화하고, 너무 많은 하위 클래스를 생성하지 않으 중산층을 할 수 있습니다.

참고 :이 때 책임 혼란을 사용할 수 없습니다.

실현

의는 중간 모델 대화방의 예를 통해 살펴 보겠습니다. 예, 여러 사용자가 방, 대화방 채팅 메시지를 보낼 수, 메시지는 모든 사용자에게 표시됩니다. 우리는 두 클래스의채팅방사용자를 작성합니다.사용자는 뉴스를 공유 할 수있는채팅방의방법을 개체.

MediatorPatternDemo,우리가 그들 사이의 통신을 표시하는사용자클래스 객체의 사용을 입증한다.

중재자 패턴 UML 다이어그램

1 단계

중간 클래스를 만듭니다.

ChatRoom.java

가져 오기 java.util.Date;

공용 클래스 채팅방 {
   공공 정적 무효 showMessage (사용자 사용자, 문자열 메시지) {
      에서 System.out.println (새 Date (). toString ()
         + "["+ User.getName () + "]"+ 메시지);
   }
}

2 단계

사용자 클래스를 만듭니다.

User.java

공용 클래스 사용자 {
   개인 문자열 이름;

   공공 문자열 getName () {
      이름을 반환;
   }

   공공 무효에서는 setName (문자열 이름) {
      this.name = 이름;
   }

   공용 사용자 (문자열 이름) {
      this.name = 이름;
   }

   공공 무효 sendMessage 첨부 (문자열 메시지) {
      ChatRoom.showMessage (이 메시지);
   }
}

3 단계

그들 사이의 통신을표시하기위해사용자오브젝트를 사용한다.

MediatorPatternDemo.java

공용 클래스 MediatorPatternDemo {
   공공 정적 무효 메인 (문자열 []에 args) {
      사용자 로버트 = 새 사용자 ( "로버트");
      사용자 존 = 새 사용자 ( "존");

      robert.sendMessage ( "안녕 요!");
      john.sendMessage ( "안녕하세요 로버트!");
   }
}

4 단계

출력을 확인합니다.

목 1월 31일 인도 표준시 16시 05분 46초 2013 [로버트] :! 안녕하세요 존!
목 1월 31일 인도 표준시 16시 05분 46초 2013 [존] :! 안녕하세요 로버트!