A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 隋玉翠 黑马帝   /  2011-8-9 19:22  /  1960 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

单例有几种实现方式?我知道 单个成员的枚举可以作为单例的实现方式,那么还有其它的吗?求指点

2 个回复

倒序浏览
黑马网友  发表于 2011-8-9 22:35:20
沙发
第一种:饱汉模式
public class SingleTon {
        private SingleTon(){
                }

        //实例化放在静态代码块里可提高程序的执行效率,但也可能更占用空间       
        private final static SingleTon instance = new SingleTon();
        public static SingleTon getInstance(){
                return instance;
        }
}

第二种:饥汉模式,
public class SingleTon {
        private SingleTon(){}
       
        private static instance = null;//new SingleTon();
       
        public static synchronized SingleTon getInstance(){
                if(instance == null)
                        instance = new SingleTon();
                return instance;
        }
}



第三种:用枚举
        public enum SingleTon{
                ONE;
       
        }
回复 使用道具 举报
黑马网友  发表于 2011-8-10 05:11:25
藤椅
其实就是那么回事,管他什么模式,你非要写一个类,想着怎么写能让它只有一个实例。写着写着就懂了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马