Java mode-singleton mode: Singleton mode ensures that a class has only one instance, and provides the instance to the entire system. Features: 1. A class can only have one instance. 2. Create this instance by yourself. 3. Use this instance for the entire system: In the following object diagram, there is a "singleton object", and "Customer A", "Customer B", and "customer C" are the three customer objects of the singleton object. As you can see, all customer objects share one singleton object. In addition, we can see from the singleton object to its own connection line that the singleton object holds a reference to itself. The Singleton mode ensures that only one instance of a class exists in a Java application. In many operations, such as the creation of Object-database connections, such single-threaded operations are required. Some resource managers are often designed to work in singleton mode. External resources: for example, each computer may have several printers, but only one printer spooler can be used to prevent two print jobs from being output to the printer at the same time. Each computer can have several communication ports. The system should centrally manage these communication ports to prevent a communication port from being called by both requests at the same time. For example, most software has one or more attribute files to store system configurations. Such a system should be managed by an object. Example: Windows recycle bin. In the entire Windows system, the recycle bin can only have one instance, and the entire system uses this unique instance, and the recycle bin provides its own instance. Therefore, the recycle bin is a singleton application. Two forms: 1. the hungry Chinese Singleton class public class Singleton {
Private Singleton (){}
// Define your own instance internally. Isn't it strange?
// Note that this is private for internal calls only
Private Static Singleton instance = new Singleton ();
// Here is a static method for external access to this class, which can be accessed directly.
Public static Singleton getinstance (){
Return instance;
}
} 2. Lazy Singleton type
Public class Singleton {
Private Static Singleton instance = NULL;
If (instance = NULL)
Instance = new Singleton ();
Return instance ;}
}
// This method is better than above. You don't need to generate objects every time. It's just the first time.
// Generate instances during use, improving efficiency! Public static synchronized Singleton getinstance () {The second form is lazy initialization. That is to say, the initial Singleton for the first call will not be regenerated in the future. Note that synchronized in the form of lazy Initialization is important. If synchronized is not available, you may obtain multiple Singleton instances by using getinstance. Generally, the first type is safer.