黑马程序员——单例设计模式

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

3.7 单例设计模式

    1、设计模式:解决一类问题最行之有效的方法

    2、单例设计模式:保证内存中只有一个对象

    3、原因:以配置文件为例,

    4、如何保证对象的唯一性?

        1)、不允许其他程序用new建立该类对象

        2)、为了让其他程序可以访问到该类对象,在本类中,定义一个对象

        3)、为了让其他程序对自定义对象可以访问,可以对外提供一些访问方式

    5、以上3部怎么用代码体现?

        1)、将构造函数私有化

        2)、在类中创建一个本类对象

        3)、提供一个方法可以获得该对象

6、模式:

①饿汉式:定义单例时,建议使用饿汉式

class Singleton{
private int num;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
private Singleton(){}
private static Singleton s = new Singleton();
public static Singleton getInstance(){
return s;
}
}

②懒汉式:对象的延时加载,懒汉式在面试的时候考的最多

class Singleton{
private int num;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
private Singleton(){}
private static Singleton s = null;
public static  Singleton getInstance(){
if(s==null){
synchronized(Singleton.class){
if(s==null)
s = new Singleton();
}
}
return s;
}
}

 ---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

详细请查看:<ahref="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章