Wikipedia on the definition of a singleton mode: Also known as the list mode, is a common software design pattern. When you apply this pattern, the class of the Singleton object must guarantee that only one instance exists. Many times the entire system needs to have only one global object, which helps us coordinate the overall behavior of the system.
For a slightly more complex system, the various data to be managed (such as database connection, module configuration information, etc.), it is best to encapsulate this information, all the module to use this information can only be taken from here, this can reduce the coupling between each module, Facilitates the maintenance of late procedures.
Here are a few examples of common scenarios for a singleton pattern:
Manage database connections: If you create a database connection directly in each model, you might create dozens of connections on a single visit, which is a waste of database resources, and it is sufficient for database connections to create only one database connection per request.
Manage Profiles: Configuration information is often used in. xml files or directly using arrays to encapsulate, for the component system, the configuration file is the core of the entire system, if each module is directly read the configuration file, not only very cumbersome, and not conducive to management, if the configuration file structure has changed, you need to each module in each Once the configuration information is called for modification, this is very painful. With the singleton mode, it is convenient to manage configuration information uniformly, if the configuration file structure changes, only need to modify the invocation method in the singleton, which is very advantageous to the system's late maintenance.
Log output: In the module development and debugging, operation, often need to use the log function, if in a single case, the static log method, you can easily call directly and avoid in the code everywhere Echo, Var_dump, Print_r and so on. The method in a singleton can be called globally only once, so it's worth taking the time to write it better and more fully functional.
For the MVC architecture system, the data exchange between the controller layer and the view layer can be done through a singleton mode. The data in the controller is then "forwarded" to the view layer by a single case.
The singleton can also be used to temporarily "store" the model instance in order to facilitate the use of the model instance in subsequent code. Instantiated model, what should I do if I want to continue to use it in other classes? The direct new model object is obviously not possible, the answer is to use a singleton.
The above simply lists some of the scenarios I used in the development of the singleton mode, there are many applications are not listed, in short, the singleton mode is a very useful design pattern, as a program developer needs to be fully mastered.
This article copyright belongs to the author, reproduced please indicate the source: http://www.cnblogs.com/jpdoutop/p/Design-Pattern-Singleton.html
A singleton pattern of design patterns