日期:2014-05-20  浏览次数:20661 次

[设计模式]怎么使所有类都具有单态的能力??
由于多个类都设计为单态, 有么有办法使这些类都具有单态的能力?
而不是类似下面这种写法
Java code

public class TestSingle {
    // 不想在每个类中重复这段代码--------begin
    private static TestSingle instance = new TestSingle();
    public static TestSingle getInstance() {
        return instance;
    }
    private TestSingle () {
    }
    // 不想在每个类中重复这段代码--------end
}



------解决方案--------------------
没把。
------解决方案--------------------
你可以写一个接口工厂。。。
------解决方案--------------------
写一个对象工厂类,控制所有类的生产工作。例如:
Java code

public class Test {

    private static Map<String, Object> map = new HashMap<String, Object>();
    
    public static Object getSingleObject(String className) throws Exception{
        if(map.get(className)==null){
            Object obj = Class.forName(className).newInstance();
            map.put(className, obj);
            return obj;
        }
        return map.get(className);
    }
    
}