设计原则分为:
这些只是原则,尽量遵守,具体实现还要以系统架构的健壮性来做参考。
单例模式就是只有一个实例对象,在一个类中始终只有一个对象进行操作,这样可以极大减少内存的开支和系统性能消耗,
应用场景:数据库连接类,只需要创建一个对象或直接使用静态方法就可以,没必要创建多个对象
注意事项:
饿汉式:最普通的单例模式写法
优点:保证线程安全
缺点:容易产生垃圾对象消耗空间
/**
* 单例模式-饿汉
*/
public class SingleTest {
/**
* 单例模式核心-构造方法私有化
*/
private SingleTest(){}
/**
* 用全局引用唯一单例对象
*/
private final static SingleTest singleTest=new SingleTest();
/**
* 获取全局唯一的单例对象
*/
public static SingleTest getInstance(){
return singleTest;
}}
懒汉式:为了避免饿汉式出现的类创建不被使用造成的资源浪费问题,懒汉式只有用到的时候才创建对象
优点:避免了创建对象不适用的资源消耗问题
缺点:线程不安全,多线程环境下容易判空失效
/**
* 单例模式-懒汉
*/
public class SingleTest {
/**
* 单例模式核心,构造方法私有化
*/
private SingleTest(){}
/**
* 懒汉式- 开始不创建对象
*/
private static SingleTest singleTest;
/**
* 获取全局唯一单例对象,使用时创建对象
*/
public static SingleTest getInstance(){
if (singleTest==null){ //判断实例为空就创建,否则不创建对象,避免了资源消耗
singleTest=new SingleTest();
}
return singleTest;
}
}
未完。。。待续?
?
?