1类图
2java示例
public class Test {
public static void main(String[] args) {
Processor word=new WordProcessor();
Processor syntax=new SyntaxProcessor();
Processor compile=new CompileProcessor();
word.setNext(syntax);
syntax.setNext(compile);
word.handle();
}
}
public interface Processor {
void setNext(Processor p);
void handle();
}
public class WordProcessor implements Processor {
private Processor next;
@Override
public void setNext(Processor p) {
this.next=p;
}
@Override
public void handle() {
System.out.println("word process");
if(this.next!=null){
this.next.handle();
}
}
}
public class SyntaxProcessor implements Processor {
private Processor next;
@Override
public void setNext(Processor p) {
this.next=p;
}
@Override
public void handle() {
System.out.println("syntax process");
if(this.next!=null){
this.next.handle();
}
}
}
public class CompileProcessor implements Processor {
private Processor next;
@Override
public void setNext(Processor p) {
this.next=p;
}
@Override
public void handle() {
System.out.println("compile process");
if(this.next!=null){
this.next.handle();
}
}
}