Summary
In this chapter, we covered the Chain of Responsibility design pattern. This pattern is useful to model requests and/or handle events when the number and type of handlers aren't known in advance.
Overall, we have learned how to use this design pattern to facilitate loose coupling between the sender and the receiver(s). Some examples that we have seen where this is particularly beneficial include Java's servlet and Apple's Cocoa frameworks.
That's it for the Chain of Responsibility pattern. In the next chapter, we will cover the Command pattern.