设计模式之略见一斑(Chain of Responsibility责任链模式)
设计模式 写道
public class Test {public static void main(String[] args) {HandleBoon hb = new HandleBoon();HandleFinance hf = new HandleFinance();HandleInsure hi = new HandleInsure();hb.setOtherHandle(hf);hf.setOtherHandle(hi);List<Handle> list = new ArrayList<Handle>();list.add(hb);list.add(hf);list.add(hi);Request request = new Request("车票");for(Handle handle:list){if(!request.isFinished()){handle.handleRequest(request);}else{break;}}}}?
首先我知道是15楼,如果成员组他们彼此都不知道自己的话,那么我必须走遍15楼的去找财务组(假设当初我是不知道的)才能报销我的发票。
?
?
小结:
? 当应用了责任链模式之后,客户不必事先知道对象集合中哪些可提供自己所需要的服务。当客户发出请求调用之后,该请求会沿着责任链转发,直到找到提供该服务的对象为止。这样可大大降低客户端代码与提供服务的对象之间的耦合程序。
?
?
?