单子模式 简介

来源:互联网 发布:css div布局源码下载 编辑:程序博客网 时间:2024/04/16 12:39
 

说实话,这是我面试时被击中的第一枪,因为看的书少,实践的也少,所以当时根本不知道什么是单子模式。现在看的多了,就想把以前的一些失误记录下来。一是提醒自己不要再犯这类错误,二也是给其他人一些提醒吧。

言归正传,所谓单子模式就是在整个应用过程中只向外界提供唯一的一份实例,也就是说在应用时只有一个实例,这样也就不用反反复复的创建实例了。那么根据他的要求,看下面一个最简单的单子模式的代码:

  1. publicclass Singleton {
  2.     privatestatic Singleton single =new Singleton();
  3.     
  4.     private Singleton(){
  5.         
  6.      }
  7.     
  8.     publicstatic Singleton getSingletonInstance(){
  9.         return single;
  10.      }
  11. }

通过这段代码,我们发现要想实现这个Singleton类的实例,就必须要通过构造函数,但是他的构造函数是private的,所以无法在别的类中实现他的实例化,但是可以通过getSingletonInstance方法,能返回一个实例single,因为他是public的静态函数,可以被别的类调用。这就是一个简单单子模式。当然也可以把构造single的语句放在getSingletonInstance方法中去实现。

总结一下单子模式的特点:

1. 构造方法是private修饰的。

2. 有一个private的静态应用实例。

3. 有一个静态的public的方法返回该类的实例。

其实这三个特点完全是由于单子模式的要求所决定的。

原创粉丝点击