单例设计模式:解决一个类在内存中只存放一个对象。
---------------------对象在内存中的唯一性-------------------
1. 为了避免其它程序过多建立该类对象。先禁止其它程序建立该类对象;
2. 还为了让其它程序可以访问到该类对象,只好在本类中自定义一个对象;
3. 为了方便其他程序对自定义对象的访问,可以提供一些访问方式。
怎么用代码体现呢?
1. 将构造函数私有化;
2. 在类中创建一个本类对象;
3. 提供一个方法可以获取到该对象。
对于事物该怎么描述,就怎么描述
当需要将该事物的对象保证在内存中唯一时,就将以上三步相加即可。
class Demo { private Demo(){} private static d = new Demo(); public static Demo getInstance() { return d; } } //单例设计模式: 先初始化对象: 称为:饿汉式 //对象的延迟加载,称为懒汉式。 会涉及到多线程的安全问题,需要上锁 class Demo { private Demo(){} private static Demo d = null; public static Demo getInstance() { if(d==null) { synchronized( Demo.class ) { if(d==null) { d = new Demo(); } } } return d; } }