Adding initialization-on-demand idiom and noninstantiable class instead of interface constant idiom
layout, title, folder, permalink, pumlid, categories, tags
layout | title | folder | permalink | pumlid | categories | tags | ||
---|---|---|---|---|---|---|---|---|
pattern | Servant | servant | /patterns/servant/ | DSkn4O0m20NGLNG0G-ys63cDbv0SV7HzRUnUy-QYkSOkONKwWU4haV6JZe8pjd2nt1MYIBatAZKU1XjTVFEoYvT3by60c3erzW_qdPiL9CY_KrXB8rfz0G00 | Structural |
|
Intent
Servant is used for providing some behavior to a group of classes. Instead of defining that behavior in each class - or when we cannot factor out this behavior in the common parent class - it is defined once in the Servant.
Applicability
Use the Servant pattern when
- when we want some objects to perform a common action and don't want to define this action as a method in every class.