单例模式:用于保证在程度的运行期间某个类有且只有一个实例
优势:在于尽可能节约资源
应用场景:还不太懂,希望懂的前辈们补充
————————————————————
通过修改构造方法的访问权限实现单例模式
比如
package com.lixiyu; public class TestExample1{ public static void main(String[] args){ System.out.println("创建神马1对象:"); SHENMA shenma1=SHENMA.getInstance();//创建对象 shenma1.getName();//输出名字 System.out.println("创建神马2对象:"); SHENMA shenma2=SHENMA.getInstance();//创建对象 shenma2.getName();//输出名字 System.out.println("创建神马3对象:"); SHENMA shenma3=SHENMA.getInstance();//创建对象 shenma3.getName();//输出名字 } }
这时需要创建一个SHENMA的CLASS类来说明
package com.lixiyu; public class SHENMA { private static SHENMA shenma=null;//声明一个类SHENMA的引用 private SHENMA(){//将构造方法私有化 } public static SHENMA getInstance(){ if(shenma==null){ shenma=new SHENMA(); } return shenma; } public void getName(){ System.out.println("这是神马:好东西"); } }
只需要new一次创建实例就可以解决问题了
public static SHENMA getInstance(){ if(shenma==null){ shenma=new SHENMA(); } return shenma; }
单例模式还有很多种写法,这只是其中之一,在以后学习里遇到再记录下来。