题目描述:某公司欲开发一个软件系统的在线文档帮助系统,用户可以在任何一个查询环境中输入查询关键字,如果当前查询环境下没有相关内容,则系统会将查询按照一定的顺序转发给其他查询环境。
实现截图:
UML图:
SearchContext.java
package onlinedocument_chain_of_responsibility_4;
public abstract class SearchContext {
protected SearchContext successor;
public void setSuccessor(SearchContext successor) {
this.successor = successor;
}
public abstract void search(String key);
}
SearchContext1.java
package onlinedocument_chain_of_responsibility_4;
public class SearchContext1 extends SearchContext {
public void search(String key) {
if(key == "key1")
System.out.println("在ARCTIC Fox环境中查到相关内容");
else if(this.successor != null)
this.successor.search(key);
}
}
SearchContext2.java
package onlinedocument_chain_of_responsibility_4;
public class SearchContext2 extends SearchContext {
public void search(String key) {
if(key == "key2")
System.out.println("在PHOENIX环境中查到相关内容");
else if(this.successor != null)
this.successor.search(key);
else System.out.println("未查到相关内容,转交到下一个查询环境");
}
}
test.java
package onlinedocument_chain_of_responsibility_4;
public class shijian4_zaixianwendangbangzhu {
public static void main(String[] args) {
SearchContext s1, s2;
s1 = new SearchContext1();
s2 = new SearchContext2();
s1.setSuccessor(s2);
s1.search("key2");
s1.search("key1");
s1.search("g2");
}
}