单例模式的一点延伸
单例的实现:通过将构造方法的私有化,使得对象构建过程的调用被类完全直接管理。
先贴一个最简单的eager:
package com.shy2850;public class Singleton {private static Singleton singleton = new Singleton();public static Singleton getInstence(){return singleton;}private Singleton() {}}
package com.shy2850;public class Singleton {private static Singleton singleton;public static Singleton getInstence(){if(null == singleton)singleton = new Singleton();return singleton;}private Singleton() {}}
package com.shy2850;public class Fivton {private static Fivton[] fivtons;static{init();}private static void init(){fivtons = new Fivton[5];for (int i = 0; i < fivtons.length; i++) {fivtons[i] = new Fivton();}}public static Fivton getIntence(int i){return fivtons[i%5];}private Fivton() {}}
package com.shy2850;import java.util.HashMap;import java.util.Map;public class BeanFactory {private String value;private static Map<String, BeanFactory> map = new HashMap<String, BeanFactory>();static{init();}private static void init(){map.put("ok", new BeanFactory("ok"));map.put("pipa", new BeanFactory("pipa"));map.put(new String(), new BeanFactory(""));}public static BeanFactory getIntence(String key){return map.get(key);}private BeanFactory(String value){this.value = value;} public String toString() {return "BeanFactory[value="+value+"]";}}