자바 중개자 모드 쉽게 파악

정의: 여러 대상과 클래스 간의 통신 복잡성을 낮추는 데 사용됩니다.중개자 모델은 행위형 모델에 속한다.
특징:
1. 유형의 복잡도를 낮추고 일대다를 일대일로 전환한다.
2. 각 종류 간의 결합 해소.
3. 디미트의 원칙에 부합한다.
기업급 개발 및 상용 프레임워크에서의 응용: mvc 모델의 c
구체적인 사례:

public class Demo {

 public static void main(String[] args) {
 Mediator m = new Mediator();
 Department d1 = new Department(m, " ");
 Department d2 = new Department(m, " ");
 Department d3 = new Department(m, " ");
 m.add(d1, "dep");
 m.add(d2, "fin");
 m.add(d3, "c");
 d2.apply(" ", "dep");
 d1.apply(" ", "fin");
 d1.apply(" , ", "c");
 d3.apply(" ", "fin");
 }
}

class Department{
 
 private String name;

 private Mediator mediator;
 
 public Department(Mediator mediator,String name) {
 this.name = name;
 this.mediator = mediator;
 }
 
 public String getName() {
 return name;
 }

 public void setName(String name) {
 this.name = name;
 }
 
 public void apply(String thing,String coordinate){
 System.out.println(" "+this.getName()+","+thing+", ");
 mediator.dispatch(this, thing, coordinate);
 }
 
 public void handle(String name,String thing){
 System.out.println(" "+this.getName()+","+name+" , ");
 System.out.println("*******************************************");
 }
}
/**
 * , ,  
 */
class Mediator{
 private String name;
 
 private Map<String, Department> map = new HashMap<String, Department>();
 
 public void add(Department d,String name){
 this.map.put(name, d);
 }
 
 public void dispatch(Department dpt,String thing,String coordinate){
 Department d = map.get(coordinate);
 d.handle(dpt.getName(),thing);
 }
}
중개자 모델과 대리 모델의 차이: 처음에 이 두 모델의 모델을 들어보니 이 두 모델은 하나의 모델인 것 같지만 이 두 모델은 완전히 다르다. 대리 모델은 주로 실제 대상을 숨기고 구체적인 조작 세부 사항을 알리지 않는 데 사용되고 중개자 모델은 주로 사용자가 여러 대상이 많고 복잡한 상호작용을 하기 때문에 이런 상호작용을 간소화하기 위해 종결자 모델이 생겼다.

좋은 웹페이지 즐겨찾기