Java 책임 체인 디자인 모델
책임 체인 모델은 행위형 디자인 모델 중의 하나에 속하는데 책임 체인을 어떻게 이해합니까?책임 체인은 여러 개의 대상의 수미 연결로 이해할 수 있고 각 노드는 하나의 대상이며 각 대상은 서로 다른 처리 논리에 대응하여 하나의 대상이 처리 요청에 응답할 때까지 끝난다.이 모델은 책임 체인 모델이 된다.
생활 속에서 책임 체인 모델의 원형을 찾을 수 있습니까?이런 예는 매우 많다. 예를 들어 당신이 집을 사러 가려면 먼저 판매원(대상1)이 당신을 접대한다. 당신이 3% 할인을 원한다고 하면 문제없다. 이때 판매원은 3% 할인을 할 권리가 있고 판매원(대상1)이 처리한다.이때 한 부자가 왔다. 10벌을 사려면 5% 할인을 해야 한다고 했다. 판매원(대상 1)은 5% 할인의 권한이 없다. 반드시 상급 지도자를 생각해야 한다. 판매총감독이 신청하고 판매총감독(대상 2)이 신청을 회답해야 한다.이때 국민 남편 샤오왕이 왔다. 샤오왕은 10퍼센트가 건물을 전부 샀다고 말했다. 이때 판매 총감독(대상2)도 그렇게 큰 권한이 없으니 CEO에게 회답을 신청해야 한다.
즉, 모든 고객(Client)은 판매원이 접대하고 고객이 서로 다른 권한을 제시하며 판매원이 서로 다른 대상에 넘겨 차례로 처리한다.고객은 어느 대상이 그의 요청을 처리했는지 관심을 가지지 않아서 요청 발송자와 수용자 간의 결합 관계를 떨어뜨린다.
다음은 출장 출장비 비준을 예로 들어 다음과 같은 책임 체인 모델을 실현하고 추상적인 리더십을 정의한다.
package com.test.demo;
public abstract class Leader {
protected Leader nextHandler;//
public final void handlerRequest(int money){
if(money<=limit() ){// ,
handler(money);
}else{
if(nextHandler!=null){
nextHandler.handlerRequest(money);//
}
}
}
/*
*
*/
public abstract int limit();
/*
*
*/
public abstract void handler(int money);
}
이것은 추상적인 클래스입니다. 다음은 몇 가지 클래스를 통해 그것을 계승합니다. 먼저 그룹장 클래스입니다.
package com.test.demo;
public class GroupLeader extends Leader {
public int limit() {
return 1000;// 1000
}
public void handler(int money) {
System.out.println(" "+money);
}
}
마스터 클래스:
package com.test.demo;
public class Director extends Leader {
@Override
public int limit() {
return 5000;
}
@Override
public void handler(int money) {
System.out.println(" "+money);
}
}
매니저 클래스:
package com.test.demo;
public class Manager extends Leader {
@Override
public int limit() {
return 10000;
}
@Override
public void handler(int money) {
System.out.println(" "+money);
}
}
사장 클래스:
package com.test.demo;
public class CEO extends Leader {
@Override
public int limit() {
return Integer.MAX_VALUE;
}
@Override
public void handler(int money) {
System.out.println("CEO "+money);
}
}
사장류는 상한선이 없다.다음은 직원 소장이 출장 신청을 하는 것을 정의한다.
package com.test.demo;
public class XiaoZhang {
public static void main(String[] args) {
GroupLeader groupLeader=new GroupLeader();
Director director=new Director();
Manager manager=new Manager();
CEO ceo=new CEO();
groupLeader.nextHandler=director;
director.nextHandler=manager;
manager.nextHandler=ceo;
groupLeader.handlerRequest(50000);
groupLeader.handlerRequest(500);
groupLeader.handlerRequest(5000);
}
}
장 군은 모두 팀장처럼 세 건을 신청했는데 이때 운행 실례는 다음과 같다.우리는 서로 다른 금액이 서로 다른 대상에서 처리된 것을 볼 수 있다. 장 군은 누가 처리했는지에 관심이 없다. 그는 팀장만 찾으면 된다.이것이 바로 책임 체인 모델의 특징이다.
Java 책임 체인 디자인 모델에 대한 내용은 여기까지 소개해 드리겠습니다. 도움이 되었으면 좋겠습니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.