单例的设计模式

  在程序设计中,有一个非常有意思的驳论:时间与空间。在程序开发的过程中,往往要选择是以时间换取空间,还是以空间换取时间。

  单例的设计模式解决的问题:使得一个类只能够创建一个对象。

 1 // 饿汉式单例:以空间换时间
 2 class Singleton1 {
 3     
 4     //1) 不能在外部随意创建对象,把构造器私有化
 5     private Singleton1() {
 6     }
 7     
 8     //2) 不能在外部创建对象, 只能在内部创建对象, 声明一个私有的静态的指向本类对象的引用变量.
 9     private static Singleton1 only = new Singleton1(); 
10     
11     //3) 因为对象私有化了,所以只能通过公共的静态方法获取这个唯一的对象
12     public static Singleton1 getInstance() {
13         return only;
14     }
15     
16 }
17 
18 // 懒汉式单例(可能存在线程安全问题的):以时间换空间
19 class Singleton2 {
20     
21     //1) 不能在外部随意创建对象,把构造器私有化
22     private Singleton2() {
23     }
24     
25     //2) 不能在外部创建对象, 只能在内部创建对象, 声明一个私有的静态的指向本类对象的引用变量.
26     private static Singleton2 only;
27     
28     //3) 因为对象私有化了,所以只能通过公共的静态方法获取这个唯一的对象
29     public static Singleton2 getInstance() {
30         //第一次调用时才创建对象
31         if (only == null) {
32             only = new Singleton2();
33         }
34         return only;
35     }
36     
37 }

转载请注明出处!

http://www.cnblogs.com/libingbin/

感谢您的阅读。如果文章对您有用,那么请轻轻点个赞,以资鼓励。

原文地址:https://www.cnblogs.com/libingbin/p/5973803.html