The Bureaucracy pattern is a recurring design theme used to implement hierarchical object structures which allow interaction with every level of the hierarchy and maintain their inner consistency themselves. It is a composite pattern which is based on the Composite, Mediator, Chain of Responsibility and Observer pattern. Composite patterns require new presentation and modeling techniques since their complexity makes them more difficult to approach than non-composite patterns. In this paper, I use role diagrams to present the Bureaucracy pattern and to explore its design and implementation space. Role diagrams have proved to be very useful to get a grip on this complex pattern, and I hope it will work well for design patterns in general.
[Rie97b] Riehle D.. Bureaucracy. In Robert C. Martin, Dirk Riehle, Frank Buschmann (editors), Pattern Languages of Program Design 3, Addison-Wesley, Reading, Massachusetts, 1997.