A font server provides a good example of where child objects can be useful. Different fonts might share a common protocol, but their individual behavior differs. Using child objects, you can design dispatchers and dispatcher implementation classes that are specific to each font type, with a parent dispatcher to manage them.
When a parent caller sends a request to a parent dispatcher, the parent dispatcher evaluates the request (determining the font type) and instantiates the appropriate child dispatcher. The parent dispatcher communicates a child ID back to the parent caller, which then instantiates a child caller. From this point on, the child caller and child dispatcher communicate directly to process requests and replies. The child dispatcher persists beyond the single request--ready to handle future calls for the font type it is designed to process.
This section describes how child objects work. For information on how to use child objects, see "Implementing a collection of child objects" on page 99.