黑马程序员技术交流社区
标题:
单例设计模式
[打印本页]
作者:
ming12
时间:
2015-5-10 15:39
标题:
单例设计模式
设计模式:解决某一类问题最行之有效的方法。java中共有23种设计模式,其中
单例设计模式:解决一个类在内存中只存在一个对象。
想要保证对象唯一:
1,为了避免其他程序过多的建立该类对象,先禁止其他程序建立该类对象
2, 还为了让其他程序访问到该类对象,只好在本垒中,自定义一个对象
3,为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式
实现 这三部的步骤
1,将构造函数私有化
2,在类中创建一个本类对象
3,提供一个方法可以获取到该对象
通过方法才能拿到对象,方法被调用只能有两种方式,要么对象,要么类名,现在因为构造方法是私有的,所以不能new对象了,能被类名调用,这个方法必须是静态的,访问方法必定访问类中成员,静态只能访问静态,所以这个成员也需要设置为静态 的。类中的成员变量一般是私有的。
public class Student {
private String name;
private Student(){}
private static Student s= new Student();
public static Student getInstance(){
return s;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Student s1 = Student.getInstance();
Student s2 = Student.getInstance();
s1.setName("张三");
System.out.println(s2.getName());
}
}
复制代码
运行结果:张三
说明s1和s2为同一个对象。
public class Student1 {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Student1() {
// TODO Auto-generated constructor stub
}
public static void main(String [] args){
Student1 s1 = new Student1();
Student1 s2 = new Student1();
s1.setName("zhangsan");
System.out.println(s2.getName());
}
}
复制代码
运行结果为:null
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2