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

© 天雨云龙 中级黑马   /  2016-8-18 22:31  /  509 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//单例设计模式,解决对象只能有唯一一个的问题;
public class Demo01 {

        public static void main(String[] args) {
                //模式1验证
                TaiYang_1 s1 = TaiYang_1.getInstance();
                TaiYang_1 s2 = TaiYang_1.getInstance();
                System.out.println(s1==s2);//返回:true,说明s1和s2是指向同一个对象的,验证了对象的唯一性
               
                //模式2验证
                TaiYang_2 s3 = TaiYang_2.INSTANCE;
                TaiYang_2 s4 = TaiYang_2.INSTANCE;
                System.out.println(s3==s4);//返回:true,说明s3和s4是指向同一个对象,验证了对象的唯一性
        }
}
//演示单例设计模式的两种定义方式
class TaiYang_1{
        //自己new一个私有的该类对象,因为不让别人创建,故需要调用该类时,自己就创建好,使用静态
        private static TaiYang_1 INSTANCE = new TaiYang_1();
        //然后私有化构造方法
        private TaiYang_1(){}
        //提供获取该对象的方法,因为要返回静态的INSTANCE,故此方法定义为静态
        public static TaiYang_1 getInstance(){
                return INSTANCE;
        }
}
class TaiYang_2{
        //私有化构造方法
        private TaiYang_2(){}
        public static final TaiYang_2 INSTANCE = new TaiYang_2();
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马