本文主要是介绍java单例模式另外俩种稀有的模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
类似Spring的IOC
//类似Spring里面的方法,将类名注册,下次从里面直接获取。
public class Singleton6 {private static Map<String, Singleton6> map = new HashMap<String, Singleton6>();static {Singleton6 single = new Singleton6();map.put(single.getClass().getName(), single);}// 保护的默认构造子protected Singleton6() {}// 静态工厂方法,返还此类惟一的实例public static Singleton6 getInstance(String name) {if (name == null) {name = Singleton6.class.getName();}if (map.get(name) == null) {try {map.put(name, (Singleton6) Class.forName(name).newInstance());} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}}return map.get(name);}
}
最安全的饿汉模式
public class TestSingleton { String name = null; private TestSingleton() {} //注意这里
这篇关于java单例模式另外俩种稀有的模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!