模式,一种套路,解决问题的固有方法:
1,饿汉式单例代码:
class Person {
private static Person p = new Person();
private Person() {
}
public static Person getter() {
return p;
}
}
public class Demo1 {
public static void main(String[] args) {
System.out.println(Person.getter());
System.out.println(Person.getter());
}
}
2,懒汉式单例代码:
class Student4{
private static Student4 s=null;
private Student4(){
}
public static Student4 getter(){
if(s==null){
s=new Student4();
}
return s;
}
}
public class DanLi{
public static void main(String[] args) {
System.out.println(Student4.getter());
System.out.println(Student4.getter());
}
}
因为对s先是赋值,后是创建对象对这个变量进行多次操作。懒汉式代码有线程安全问题。
上面是单列模式的一段代码,在之前我们写代码是,创建对象,创建的很爽,我们想创建几个就创建几个,但是在现实生活中这种做法是不合理的,就像玩游戏,你不可能想创建几个对象就创建几个。
分析:
我们通过static来限制对象的调用,因为static变量只能创建一次,在类加载后运行,所以通过static创建对象。
将构造方法私有化,可以让你无法创建对象,无法搞事情。
最后通过getter方法让main方法接收一下,你不能不让人家一个对象都创建不了。