单例设计模式概述:
单例模式就是要确保类在内存中只有一个对象,该实例必须自动创建,并且对外提供。
优点:
在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象
单例模式无疑可以提高系统的性能。
缺点:
没有抽象层,因此扩展很难。
职责过重,在一定程序上违背了单一职责。
package cn.itcast_03;
public class Student {
// 构造私有,目的不让外界创建对象
private Student() {
}
// 自己造一个
// 静态方法只能访问静态成员变量,加静态
// 为了不让外界直接访问修改这个值,加private
private static Student s = new Student();
// 提供公共的访问方式
// 为了保证外界能够直接使用该方法,加静态
public static Student getStudent() {
return s;
}
}
package cn.itcast_03;
/*
* 单例模式:保证类在内存中只有一个对象。
*
* 如何保证类在内存中只有一个对象呢?
* A:把构造方法私有
* B:在成员位置自己创建一个对象
* C:通过一个公共的方法提供访问
*/
public class StudentDemo {
public static void main(String[] args) {
// Student s1 = new Student();
// Student s2 = new Student();
// System.out.println(s1 == s2); // false
// 通过单例如何得到对象呢?
// Student.s = null;不能让外界改这个值
Student s1 = Student.getStudent();
Student s2 = Student.getStudent();
System.out.println(s1 == s2); // true
//System.out.println(s1); // null,cn.itcast_03.Student@175078b
//System.out.println(s2); // null,cn.itcast_03.Student@175078b
}
}