Glossary: Software Design Patterns in Java
Chain of responsibility
Also written: chain of handlers
A pattern where a request passes along a line of handlers, and each one deals with it (here, rejects it) or passes it on. Checkout checks such as `hasItems` and `knownCarrier` run this way.