Singleton Pattern - Example of Use With The Factory Method Pattern

Example of Use With The Factory Method Pattern

The singleton pattern is often used in conjunction with the factory method pattern to create a system-wide resource whose specific type is not known to the code that uses it. An example of using these two patterns together is the Java Abstract Window Toolkit (AWT).

java.awt.Toolkit is an abstract class that binds the various AWT components to particular native toolkit implementations. The Toolkit class has a Toolkit.getDefaultToolkit factory method that returns the platform-specific subclass of Toolkit. The Toolkit object is a singleton because the AWT needs only a single object to perform the binding and the object is relatively expensive to create. The toolkit methods must be implemented in an object and not as static methods of a class because the specific implementation is not known by the platform-independent components. The name of the specific Toolkit subclass used is specified by the "awt.toolkit" environment property accessed through System.getProperties.

The binding performed by the toolkit allows, for example, the backing implementation of a java.awt.Window to bind to the platform-specific java.awt.peer.WindowPeer implementation. Neither the Window class nor the application using the window needs to be aware of which platform-specific subclass of the peer is used.

Read more about this topic:  Singleton Pattern

Famous quotes containing the words factory, method and/or pattern:

    If the factory people outside the colleges live under the discipline of narrow means, the people inside live under almost every other kind of discipline except that of narrow means—from the fruity austerities of learning, through the iron rations of English gentlemanhood, down to the modest disadvantages of occupying cold stone buildings without central heating and having to cross two or three quadrangles to take a bath.
    Margaret Halsey (b. 1910)

    In child rearing it would unquestionably be easier if a child were to do something because we say so. The authoritarian method does expedite things, but it does not produce independent functioning. If a child has not mastered the underlying principles of human interactions and merely conforms out of coercion or conditioning, he has no tools to use, no resources to apply in the next situation that confronts him.
    Elaine Heffner (20th century)

    Each child is an adventure into a better life—an opportunity to change the old pattern and make it new.
    Hubert H. Humphrey (1911–1978)