In [[computer programming]], '''chain-of-responsibility pattern''' is one ofa [[design pattern (computer science)|design pattern]]s where [[Command pattern|command objects]] are coming from somewhere, their processing logic is spread between a number of objects and the commands are distributed among those objects. Each object is smart enough to know which command objects it can handle, how to pass off command objects it can't handle, and and how to add to the end of the chain.
'''Permutations''': Commands may be sent in alternate directions out, forming a tree of responsibility. Recursion could continue until the command is processed, or the entire tree has been explored. An XML interpreter (parsed, but not yet executed) might be a fitting example.
Each object is smart enough to know whether it can handle something, how to pass
it off, and how to add to the end of the chain.
'''Permutations''': Commands may be sent in alternate directions out, forming a tree
of responsibility. Recursion could continue until the command is processed, or
the entire tree has been explored.
An XML interpreter (parsed, but not yet executed) example might be fitting.
This pattern promotes the idea of [[loose coupling]], a programming practice.
''The article is originally from [[Perl Design Patterns Book]]''
[[Category:Software design patterns]]
|