import java.util.HashMap;
import java.util.Map;/***工厂类,缓存初始数据(池对象或者其他对象信息)* @file DemoFactory.java*/
public class DemoFactory
{/** 单例实例对象 */private static volatile DemoFactory demoFactory;/**所有集群连接池对象map缓存*/private static volatile Map<String, ShardedPool> poolMap = new HashMap<String, ShardedPool>();/** 私有构造方法,不允许自行实例化对象 */private DemoFactory(){init();}/*** 获取缓存对象信息*/public ShardedPool getResource(String cluster){ShardedPool pool = poolMap.get(cluster);if (pool == null){return null;}return pool;}/*** * 获取实例对象方法*/public static DemoFactory getInstance(){if (demoFactory == null){synchronized (DemoFactory.class){if (demoFactory == null){demoFactory = new DemoFactory();}}}return demoFactory;}/*** 工厂类初始化相关资源,将其放到map中*/private void init() {ShardedPool pool = new ShardedPool();poolMap.put("KEY", pool);}public static class ShardedPool{//初始化某个资源池 TODO}
}