定义:使多个对象都有机会处理請求从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链并沿着这条链传递该请求直到有一个处理它为止。
优点:降低类之间的耦合度使得处理类仅需要保持一个指向后继者的引用,也使得一个对象无需知道是其他哪一个对象处理其请求对象仅需知道该请求会被正确处理。接收者和发送者都没有明确的对方信息增强了给对象指派职责的灵活性。
缺点:因为对象不知道是其它哪┅个对象处理其请求的所以职责链模式不保证对象被接收。
使用时机:当有多个对象处理请求而且需要动态指定处理者的时候,可以使用职责链模式
某公司的内部财务支出需要网上审批,对于不同额度的需要不同级别的人审批这个可以用职责链模式实现。
首先设计┅个抽象类代表审批的人
后面实现具体的各级别审批者,涉及金额不一样
最后客户端把审批者都加进来形成职责链