----------------------
ASP.Net+Android+IO开发S、
.Net培训 、期待与您交流! ----------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
单例设计模式:
---------------------
1、解决问题:
保证一个类在内存中的对象的唯一性
如软件的配置文件,可以使用单例,保证配置文件只有一份。
---------------------
2、如何保证对象唯一:
将构造函数私有化,避免外界程序创建对象。
类内部创建对象,自身进行实例化,从而调用功能(引用必须为私有静态的)。
为外界能访问此对象,将对象的引用通过公共访问方法暴露给外界(方法必须是静态的,才能被类调用)。
---------------------
3、两种格式
饿汉式:类一进内存,就已经创建好对象。
class Single
{
private static final Single s= new Single(); 【final可不加,加上更加严谨】
privateSingle(){}
public static SinglegetInstance()
{
return s;
}
}
---------------------
懒汉式:类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象。
-延时加载-synchronized 同步
class Single
{
private static Single s = null;
private Single(){}
private static SinglegetInstance()
{
if(s==null)
{
synchronized(Single.class)
{
if(s==null)
s = new Single();
}
}
return s;
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~