单例设计模式:
保证一个类仅有一个实例, 并提供一个访问它的全局访问点。
如何保证单例模式(不能被任意实例化对象)
1:构造方法私有化
2:声明一个本类对象
3:给外部提供一个静态方法获取对象的实例
实现方式:
1:饿汉式
2:懒汉式
代码如下:
/*
* 单例设计模式
*/
public class SingletoDemo {
public static void main(String[] args) {
Singleto1 s= Singleto1.getInstance();
s.print();
Singleto2 s2 = Singleto2.getInstance();
s2.print();
}
}
/*
* 把该类设计常单例模式
* 1:饿汉式
*/
class Singleto1{
//定义一个本类对象并实例化
private static Singleto1 s = new Singleto1 ();
//构造方法私有化
private Singleto1() {
}
//给外部提供一个静态方法获取实例对象
public static Singleto1 getInstance () {
return s;
}
public void print () {
System.out.println("饿汉式单例模式");
}
}
/*
* l懒汉式单例设计模式
*/
class Singleto2{
//定义一个本类对象但不实例化
private static Singleto2 s = null;
//构造方法私有化
private Singleto2() {
}
//给外部提供一个静态方法获取实例对象
public static Singleto2 getInstance () {
if (s==null) {
s = new Singleto2();
}
return s;
}
public void print () {
System.out.println("懒汉式单例设计模式");
}
}
/* 1:推荐使用饿汉式
* 2:懒汉式会涉及线程安全问题
* 3:应用场合:在设计中有时需要工具类,如访问数据库等操作
* 将其设计成单例模式应用将会很便捷。
*/