---------------------- <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>