设计模式:解决某一类问题行知最有效的方法。java有23种设计模式
单列设计模式:
解决一个类在内存中只存在一个对象
思路:(要保证对象的唯一性)
1.为了避免其它程序建立该对象,先禁止替他类创建改对象,(构造函数私有化)
2.还能让其他程序可以访问到该对象,只能在该类中自己生成一个对象
3.为了其他程序可以访问到当中的值,可以设计一些方法获取到值。
当然他们当中有两种方式:懒汉式,饿汉式。
(其中两者的区别是在内存当中的何时创建)
下面是饿汉式的代码:(写法)(开发一般用这个方法)
//创建一个学生类的单列设计模式 class Student { private String name="zhulang"; //构造函数私有化 private Student(){}; //静态自己创建自己的对象 private static Student s =new Student(); //静态方法获取到该对象 public static String getInstance() { return s.name; }
懒汉式:(面试时一般用这个)
原理,对象是在方法被调用时,才初始化,也叫做对象的延时加载
如下:只有Student类进内存。但是对象没有存在,只getInstance方法是才被创建
class Student { private String name = "zhulang"; // 构造函数私有化 private Student() { }; // 静态自己创建自己的对象 private static Student s = null; // 静态方法获取到该对象 public static String getInstance() { //对象是否被其他程序调用 if (s == null) { //上锁 synchronized (Student.class) { if (s == null) s = new Student(); } } return s.name; } }