상용 디자인 모델 총화 - 책임 체인 모델
다 중 스 레 드 프로 그래 밍 모델 에서 책임 체인 모델 은 자주 사용 하 는 모델 로 책임 체인 모델 은 하나의 임 무 를 작은 독립 된 임무 단원 으로 분해 하여 전체 임 무 를 한눈 에 알 수 있다.
한 파충류 가 특정한 페이지 를 기어 오 르 는 것 을 예 로 들 면 url 의 스케줄 은 파충류 가 관리 하 는 것 이 아니 라 전문 적 인 urldb 모듈 로 이 루어 진다 고 가정 하면 한 페이지 의 기어 오 르 기 는 다음 과 같은 몇 개의 작은 하위 임무 로 나 눌 수 있다.웹 페이지 다운로드 하기;웹 페이지 분석 하기;현재 페이지 에서 새로 발 견 된 링크 를 urldb 에 다시 씁 니 다.임 무 를 작은 임무 로 분해 한 후에 모든 작은 임무 의 출력 은 다음 임무 의 입력 이 고 전체 프레임 워 크 는 명확 하 게 할 수 있다.로그 에 보조 되 는 정 보 는 문제 가 발생 했 을 때 문제 가 발생 한 곳 을 쉽게 찾 을 수 있 습 니 다.
잔말 말고 코드 를 보 세 요.
Processor.java
public abstract class Processor {
private Processor next;
protected int delta;
public abstract int doProcess(int base);
public void setNext( Processor next ){
this.next = next;
}
public void process(int base){
int result = doProcess(base);
if( null != next ){
next.process(result);
}
}
}
Processor Chain Factory, 작은 임 무 를 조합 하 는 일 을 맡 고 있 습 니 다.
package zl.study.designpattern.respchain;
public class ProcessorChainFactory {
public static Processor assembleChain( Processor ...processor){
Processor head = null;
Processor pre = null;
if( null == processor || 0 >= processor.length){
return head;
}
for(int i = 0; i< processor.length; i ++){
Processor current = processor[i];
if( i == 0){
head =current;
}
if( null != pre){
pre.setNext(current);
}
pre = current;
}
return head;
}
}
예제 프로그램
산수 문 제 를 풀다
Processor Add. 자바 덧셈
package zl.study.designpattern.respchain.test;
import zl.study.designpattern.respchain.Processor;
public class ProcessorAdd extends Processor{
public ProcessorAdd(int delta){
this.delta = delta;
}
@Override
public int doProcess(int base) {
int result = base + delta;
System.out.println(result);
return result;
}
}
ProcessorSub. 자바 감법
package zl.study.designpattern.respchain.test;
import zl.study.designpattern.respchain.Processor;
public class ProcessorSub extends Processor{
public ProcessorSub( int delta){
this.delta = delta;
}
@Override
public int doProcess(int base) {
int result = base -delta;
System.out.println(result);
return result;
}
}
주 프로그램
package zl.study.designpattern.respchain.test;
import zl.study.designpattern.respchain.ProcessorChainFactory;
public class RespChainTest {
public static void main(String args[]){
ProcessorAdd add = new ProcessorAdd(1);
ProcessorSub sub = new ProcessorSub(2);
ProcessorChainFactory.assembleChain(add,sub);
add.process(1);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.