Chain of Responsibility might be thought of as a dynamic generalization of recursion using Strategy objects. You make a call, and each Strategy in a linked sequence tries to satisfy the call. The process ends when one of the strategies is successful or the chain ends. In recursion, one method calls itself over and over until a termination condition is reached; with Chain of Responsibility , a method calls itself, which (by moving down the chain of Strategies ) calls a different implementation of the method, etc., until a termination condition is reached. The termination condition is either the bottom of the chain is reached (in which case a default object is returned; you may or may not be able to provide a default result so you must be able to determine the success or failure of the chain) or one of the Strategies is successful.
教材中的例子不是很好理解(应该是自己还没有足够深入下去),1材料 和 2材料 应该是比较好理解!在实际应用中比较典型的是:Tomcat中的过滤器(Filter)和Struts2中的拦截器(Intercepter),这些都需要进一步深入学习,以求在自己的实际应用中利用之。