디자인 모델 의 중개자 모델 을 백화 로 설명 하 다.
어떻게 디자인 모델 을 이해 하 는 지 먼저 그의 응용 장면 을 이해 하고 그의 사용 가치 와 사용 원인 을 얻어 야 한다.우 리 는 가장 이해 하기 쉬 운 일상 사무 에서 중개자 모델 의 밤 을 들 고 중개자 모델 을 이해 하 는 것 을 비교 해 보 자. 중개자 가 무엇 인지, 왜 중개자 가 필요 한 지 를 포함한다.
밤 을 들 어 패턴 을 보다.
eg: 밤 을 들 어 라. 우리 가 이사 할 때 물건 이 많아 서 봉 투 를 들 고 물건 을 다 담 을 수 있 는 것 이 아니 라 차 를 찾 아야 한다.그럼 우 린 어 떡 하지?예전 에 이 사 를 할 때 동네 입구 에 갔 고 길목 에서 차 를 찾 아서 남 의 차 크기 가 자신의 물건 을 실 을 수 있 는 지 확인 하고 남 에 게 도와 주 고 싶 은 지 물 어 봐 야 했다. 이 사 는 매우 번 거 로 웠 다.그 후에 화물 라 라 는 이 상업 기 회 를 보 았 습 니 다. 화물 라 라 는 이 사 를 도와 주 고 싶 은 차 와 운전 자 를 찾 는 일 을 맡 았 습 니 다. 그리고 차 의 크기, 운전 자의 서비스 품질 등 정 보 를 통 계 했 습 니 다. 그래서 누군가가 이 사 를 해 야 할 때 직접 화물 라 라 를 찾 으 면 됩 니 다. 화물 라 라 에 게 얼마나 큰 차 가 필요 한 지 알려 주 고 시간 이 필요 하면 됩 니 다. 화물 라 라 라 는 운전 자 와 차 에 연락 하 는 일 을 맡 겼 습 니 다.쌍방 이 모두 좋게 하 는 것 이 어찌 아름 답지 않 겠 는가?
이 를 통 해 알 수 있 듯 이 이 삿 짐 센터 (중개자) 는 이 삿 짐 센터 와 이 삿 짐 센터 운전 자 간 의 유대 로 이 삿 짐 센터 와 이 삿 짐 센터 운전 자 간 의 통신 을 맡 고 있 으 며, 이 삿 짐 센터 라 는 중개자가 있어 이 삿 짐 센터 와 이 삿 짐 센터 운전 자 모두 자신의 목적 을 쉽게 달성 할 수 있다.이것 이 바로 중개자 의 예 다.
그렇다면 중개자 로 서 어떤 자질 과 능력 이 필요 한 지 생각해 보 자.먼저 화물 라 라 (중개자) 는 통신 연락 자로 서 이 삿 짐 센터 와 이 삿 짐 센터 운전 자의 연락 처 를 알 아야 한다. 그 다음 에 이 삿 짐 센터 를 도와 일 을 해 야 한다. 예 를 들 어 이 삿 짐 센터 가 있 기 전에 크기 가 적당 한 차 를 찾 아야 한다. 지금 은 화물 라 라 가 있 으 면 화물 라 라 라 는 차 의 크기 를 이 삿 짐 센터 에 알려 주 고 이 삿 짐 센터 가 이 삿 짐 센터 의 수 요 를 실현 하도록 도와 야 한다.또한 화물 라 라 가 있 기 때문에 우리 의 이사 자 는 화물 라 라 에 게 연락 해서 우 리 를 도와 야 한다. 기 사 는 화물 라 라 가 자신 을 찾 을 수 있 지만 동시에 자신 도 화물 라 라 를 찾 을 수 있다. 예 를 들 어 기사 가 화물 을 끌 려 고 하지만 지금 은 살 지 않 았 다. 그 는 화물 라 라 에 게 자신의 수 요 를 자발적으로 알려 줄 수 있 고 우리 이사 자 는 화물 라 라 의 존 재 를 알 아야 한다.
캐릭터 구성
종합 적 으로 고려 하면 우 리 는 중개자 모델 의 구성 을 다음 과 같은 몇 가지 부분 으로 나 눌 수 있다.
중 개 는 여러 개의 실 체 를 연결 해 야 한다. 그 는 모든 실 체 를 알 아야 연락 할 수 있다. 그래서 그의 디자인 은 모든 실체의 사례 를 포함 하여 그 속성 으로 해 야 한다. 그 는 실 체 를 해서 일 을 해 야 하기 때문에 그 는 임 무 를 수행 하 는 방법 이 필요 하 다.
한편, 우리 의 다방면 실체 도 중개자 의 실례 를 포함해 야 중 개 를 찾 을 수 있 기 때문에 중 개 는 다방면 실체의 속성 으로서 자신 이 해 야 할 일 을 정의 하고 중개자 가 우 리 를 대신 해서 완성 하도록 해 야 한다.
어떻게 중개자 모델 을 설계 합 니까?
실체 와 중개자 의 성분 을 알 게 된 후에 우 리 는 다음 에 중개자 모델 의 디자인 을 생각한다. 먼저 추상 적 인 중개 자 를 정의 한다. 서로 다른 기능 에 따라 서로 다른 중개 로 나 눌 수 있 기 때문이다.。
public abstract class AbstractMediator {
protected BanJiaEntity banjia;//
protected CarEntity car;//
//
public AbstractMediator(){
banjia = new BanJiaEntity(this);
car = new CarEntity(this);
}
// ,
public abstract void execute(String str,Object...objects);
}
추상 적 인 중개 가 생 긴 후에 우 리 는 화물 라 라 에 게 추상 적 인 중 개 를 계승 하 게 했다.
public class Mediator extends AbstractMediator {
//
public void execute(String str,Object...objects){
//
if ("banjia".equals(str)) {
doBanjia(objects);
}
//
if ("sijiNeedOrder".equals(str)) {
doGiveOrder(objects);
}
}
private void doBanjia(Object...objects) {
banjia.isOk();
car.isOk();
// , , ...
}
private void doGiveOrder(Object...objects) {
// , ...
banjia.isOk();
car.isOk();
}
}
그 다음 에 실 체 를 정의 해 야 한다. 우 리 는 여러 개의 실체 가 있 는데 그들 은 모두 중개인 을 속성 으로 해 야 한다. 그러면 먼저 추상 적 으로 해 보 자.
public abstract class AbstractEntity {
protected AbstractMediator mediator;
public AbstractEntity(AbstractMediator mediator){
this.mediator = mediator;
}
}
이사 자 와 이 삿 짐 센터 기 사 는 구체 적 인 실체 로 삼 는 다.
public BanJiaEntity extends AbstractEntity {
public BanJiaEntity(AbstractMediator mediator){
super(mediator);
}
public void banjia(String str,Object...objects) {
super.mediator.execute(str, objects)
}
public void isOk(){}
}
public CarEntity extends AbstractEntity {
public CarEntity(AbstractMediator mediator){
super(mediator);
}
public void needOrder(String str,Object...objects) {
super.mediator.execute(str, objects)
}
public void isOk(){}
}
이렇게 해서 중개자 모델 을 실현 했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.