学习单例模式首先我们要明白static关键字
staitc 修饰变量 ← 全局变量
static 修饰方法
1)静态方法和静态变量是属于某一个类,而不属于类的对象。
2)静态方法和静态变量的引用直接通过类名引用。
3)在静态方法中不能调用非静态的方法和引用非静态的成员变量。反之,则可以。
4)静态变量在某种程序上与其他语言的全局变量相类似,如果不是私有的就可以在类的外部进行访问。
单例模式:
1.单例模式只能有一个实例! 所以不能new 对象!
因此我们的构造方法不能使public 只能是private
2.单例类必须自己自己创建自己的唯一实例。
所以类自己生成对象! 因为不能创建实例!又要生成对象我们会创建一个static方法来返回对象!
3. 返回的对象要给其他类使用所以我们要声明一个全局的对象来接受static方法返回值!
单例模式分为懒汉模式和饿汉模式!
staitc 修饰变量 ← 全局变量
static 修饰方法
1)静态方法和静态变量是属于某一个类,而不属于类的对象。
2)静态方法和静态变量的引用直接通过类名引用。
3)在静态方法中不能调用非静态的方法和引用非静态的成员变量。反之,则可以。
4)静态变量在某种程序上与其他语言的全局变量相类似,如果不是私有的就可以在类的外部进行访问。
单例模式:
1.单例模式只能有一个实例! 所以不能new 对象!
因此我们的构造方法不能使public 只能是private
2.单例类必须自己自己创建自己的唯一实例。
所以类自己生成对象! 因为不能创建实例!又要生成对象我们会创建一个static方法来返回对象!
3. 返回的对象要给其他类使用所以我们要声明一个全局的对象来接受static方法返回值!
单例模式分为懒汉模式和饿汉模式!
懒汉模式(很简单一看就明白!)
public class Singleton {
private Singleton uniqueInstance = null;
private Singleton() {
}
public Singleton getInstance() {
if (uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
}
饿汉模式
public class Singleton {
private Singleton uniqueInstance = new Singleton();
private Singleton() {
}
public Singleton getInstance() {
return uniqueInstance;
}
}