单例设计模式:解决一个类在内存中是存在一个对象的问题。当需要该事物的对象在内存中唯一时,将以下三步添加即可。
思想:想要保证对象唯一
1.为了避免其他程序过多的建立该类对象,先禁止其他程序建立该类对象
2.为了其他程序访问到该类对象,只好在本类中,自定义一个对象
3.为了方便其他程序对自定义对象的访问,可以对外提供一个访问方式
思想如何实现:
1.讲构造函数私有化
2.在类中建立一个本类对象
3.提供一个方法可以获取本类对象
/** 名称:饿汉式 特点:先初始化对象,Single类一进内存,就已经创建好了对象。 */ class Single { private Single(){}; private static Single s=new Single(); public static Single getIntance() { return s; } } /** 名称:懒汉式 特点:对象是方法被调用是,才初始化。也叫对象的延时加载。 Single类进入内存,对象还没有存在,只有调用getIntance方法时,才建立对象 */ class Single { private Single(){}; private static Single s=null; public static Single getIntance() { if (s==null) { s=new Single(); } return s; } } /****************************************************************/ class SingleDemo { public static void main(String[] args) { Single ss=Single.getIntance(); } }
在程序编程中,推荐饿汉式,因为其他程序使用时,对象已经存在。懒汉式存在一个问题,当同时调用getIntance方法时,可能会实例化多个对象。