Class::MakeMethods::Emulator::Singleton - Emulate Class::Singleton
use Class::MakeMethods::Emulator::Singleton;
# returns a new instance
my $one = Class::MakeMethods::Emulator::Singleton->instance();
# returns same instance
my $two = Class::MakeMethods::Emulator::Singleton->instance();
This module emulates the functionality of Class::Singleton, using
Class::MakeMethods to generate similar methods.
You may use it directly, as shown in the SYNOPSIS above,
Furthermore, you may call "use Class::MakeMethods::Emulator::Singleton
'-take_namespace';" to alias the Class::Singleton namespace to this
package, and subsequent calls to the original package will be transparently
handled by this emulator. To remove the emulation aliasing, call "use
Class::MakeMethods::Emulator::Singleton '-release_namespace'".
Caution: This affects
all subsequent uses of Class::Singleton in
your program, including those in other modules, and might cause unexpected
effects.
A Singleton describes an object class that can have only one instance in any
system. An example of a Singleton might be a print spooler or system registry.
This module implements a Singleton class from which other classes can be
derived. By itself, the Class::Singleton module does very little other than
manage the instantiation of a single object. In deriving a class from
Class::Singleton, your module will inherit the Singleton instantiation method
and can implement whatever specific functionality is required.
See Class::MakeMethods for general information about this distribution.
See Class::MakeMethods::Emulator for more about this family of subclasses.
See Class::Singleton for documentation of the original module.
For a description and discussion of the Singleton class, see "Design
Patterns", Gamma et al, Addison-Wesley, 1995, ISBN 0-201-63361-2.
See "new" in Class::MakeMethods::Hash and "instance" in
Class::MakeMethods::ClassVar for documentation of the created methods.