单例实现
今天去面试,面试官提问关于java模式设计的内容,其中就要单例模式,但是我没有写出来,我明明之前记过的,但是今天面试没有发挥好,伤心难过不开心。奉劝以后的学弟学妹们还是好好学习天天向上吧!!!
- 方法一:
class Single{
private static Single instance=new Single();
private Single(){}
private Single getInstance(){
return instance;
}
}
单例模式的特点:
a) 类的构造方法使用private修饰,声明为私有,这样就不能在类的外部使用new关键字来创建实例对象了
b) 在类的内部创建一个该类的实例对象,并使用静态变量INSTANCE引用该对象,由于变量应该禁止外界直接访问,因此使用private修饰,声明为私有成员。
c) 为了让类的外部能够获得类的实例对象,需要定义一个静态方法getInstance(),用于返回该类型INSTANCE。由于方法是静态的,外界可以通过“类名.方法名”访问
方法二:
class Single{
private Single(){}
public static final Single INSTANCE=new Single();
}
public 的作用是允许外部直接访问该变量
static 的作用是让外部可以使用“类名.变量名”的方式来访问变量
final 的作用是禁止外部对该变量进行修改