JAVA设计模式之单例模式 - JAVA课堂笔记整理

1、设计模式总共有23种

2、single(单例设计模式):是用来解决可以保证一个类在内存当中对象唯一性的问题。

如何保证对象的唯一性?步骤:

A、构造函数私有化,同时不需要在里面写任何代码(私有化的目的:就是不让对方建立该类对象。这就造成single模式里面的对象无法在main()方法里面进行初始化new)

B、在本类中建立一个(私有并静态的)本类对象(在本类中new一个本类的对象,因为在本类中,它也是一个成员,所以将其私有化)

C、对外提供一个(静态)方法返回该对象[getXXX()],让外界获取该对象。(因为是single模式,所以返回对象的类型为single)

class Single{

       private static final Single s = new Single();//**************B

       private Single(){};//******************A

       public static Single getSingle(){   //***************C

              return s;

       }

}

 

3、单例模式的另一种写法(面试中常见)

class Single{

       private static Single s=null;

       private Single(){};

       public static Single getSingle(){ //在static后面需要加上一个synchronized

             if(s==null){

                 s = new Single();

                 return s;

              }

       }

}

4、这两种写法的区别:

A、第一种写法的单例对象随着类的加载而加载,第二种写法的单例对象被调用的时候才

加载。

B、同步性:第二种写法如果不加synchronized容易出现安全隐患

 

posted @ 2011-11-19 15:35  中国聚龙  阅读(234)  评论(0编辑  收藏  举报