定义:
解决某一类问题行之有效的解决办法(思想)--23种
单例(singleton)设计模式:
解决问题的类型:
多个程序都要使用一个配置文件中的数据,而且要实现数据共享和交换,必须将多个数据封装到一个对象中,而且多个程序操作的是同一个对象,即,保证必须这个配置文件对象的唯一性。
优点:
可以在不同的程序中操作同一个数据,可以保证一个类的对象的唯一性
原理:
1.一个类只要提供了构造函数,就可以产生多个对象,完全无法保证唯一——既然数量不可控,不让其他程序创建对象即可
2.在本类中创建对象
3.创建完成后给其他程序提供访问方式
形式1(饿汉式):
1.私有化构造函数,不让其他程序创建的对象初始化
pravite Single(){}
2.在本类中创建(new)一个本类对象((2)因为获取对象的方法静态化,要访问该对象,所以该对象也要静态化)
private static /**final/ Single s=new Single(){}
3.定义一个功能(方法:Single为返回值类型,目的:使对象安全性可控),其他程序可以通过这个功能获取到本类的对象((1)因为构造函数私有化了,要调用该方法只能将该方法静态(3)需要权限防止权限不够,于是公有化)
public static Single getInstance()
{
return s;
}
其实上面的可以简写:
public static Single s=new Single(){}
可直接以下访问(但是对象不可控):
Single ss=Single.s;
形式2//延迟加载方式(懒汉式):
private static Single s=null;
private Single(){}
public static Single getInstance()
{
if(s=null)
s=new Single();
return s;
}