单例模式
单例模式是Java中的一种最简单的设计模式,也就是一种编码技巧,是由广大Java的使用者总结出来的经验之谈!
单例模式的使用场景是某一个类只能创建一个对象。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
注意:
- 1、单例类只能有一个实例。
- 2、单例类必须自己创建自己的唯一实例。
- 3、单例类必须给所有其他对象提供这一实例。
1.因为只能创建一个内部对象,那如何使外界不能去创建对象?
我们只需要将构造函数进行私有化,那么外界创建对象时就无法进行。这也是最关键的一点。
2.如何保证内部能正常创建一个对象并且外界可以供访问呢?
注意,此时我们必须不能在内部创建一个非静态成员变量形式的对象,这样的话外界必须创建对象才能进行使用。而我们前提是外部不能创建对象,所以我们必须将其设置为静态的,也就是private static。因为是私有的,所以外界不能直接访问,我们就需要一个函数返回该对象,在外部进行调用即可。
//饿汉式 比较急 所以直接返回对象
class Single{
private static Single s=new Single();
private Single(){}
public static Single getInstance(){
return s;
}
}
//饱汗式 比交满 不急 判断一下
class Single{
private static Single s;
private Single(){}
public static Single getInstance(){
if(s==null){
s=new Single();
}
return s;
}
}
class SingleTest{
public static void main(String[] args){
Single s1=Single.getInstance();
Single s2=Single.getInstance();
//s2=null;
}
}