文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>单例模式(Singleton)

单例模式(Singleton)

时间:2010-07-18  来源:wuquanyin1011

一,单例模式,运用比较广泛,在这里就例举几种

 

在java中对象的创建方式总共有四种,1,new创建 2,反射机制创建 3,clone创建 4,对象序列化创建.

只要知道了这几种的创建方式,设置其创建方式即可.

 

1,如果要使一个类的创建方式只有一种,可.

public class Singleton {
   private  static final Singleton singleton=new Singleton();
   private Singleton(){}
   
   public static Singleton getHandle(){
           
           return singleton;
   }
}

 2,

public class Singleton2 {

        private static Singleton2 singleton2;
        private Singleton2() {
        }
        // 同步的原因是,防止多线程时,可以创建多个实例
        public synchronized static Singleton2 getHandle() {
                if (singleton2 == null) {
                        singleton2 = new Singleton2();
                }
                return singleton2;
        }

}

大多数情况下是使用以上两种进行判断,但是根据不一样的业务条件就有不一样的设计...

可以以一个集合的方式统一管理系统里我们要运用的单例...

public class Singleton3 {

        /**
         * 可以被继承 这种设计方式,map提供了扩展性 map可以是一个properties文件,在里面一配置,根据类名就可以 获取到相应类的单例子。
         */
        protected Singleton3() {
        }
        private static Map map_register = new HashMap();

        static {
                Singleton3 sl3 = new Singleton3();
                map_register.put(sl3.getClass().getName(), sl3);
        }

        public static Object getInstance(String name) {

                if (name == null) {
                        name = "com.wqy.single.Singleton3";
                }
                if (map_register.get(name) == null) {
                        try {
                                map_register.put(name, Class.forName(name).newInstance());
                        } catch (Exception e) {

                                e.printStackTrace();
                        }
                }
                return map_register.get(name);
        }
}
 

对于对象的流写入与读取要实现一个

private Object readResolve() throws ObjectStreamException {
      return INSTANCE;
   }
 这样在读取时,不会重新创建一个对象.

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载