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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 巴银 于 2015-4-17 00:42 编辑

单例设计模式是23种Java设计模式的其中一种,它解决的问题是:一个类在内存中只存在一个对象。下面是代码实现的过程:
class Single {
        private Single() { } /*为了禁止其他程序建立该类对象,所以把该类用private进行私有化。*/
        static Single s=new Single(); /*因为Single类已经被私有化,其他程序不能再创建该类对象,所以事先在类中自定义一个对象,好让其他程序进行访    问。用static 修饰是因为下面的getInstance()方法为静态方法,该方法访问的成员变量 s,也必须是静态的。*/
        private static Single getInstance(){  /*创建一个方便于其他程序访问该类对象的一个方法,为了使方法能返回Single类的对象,所以方法类型要定义成 Single类型,用static修饰是为了能用类名访问该方法,因为其他程序无法通过用Single类创建对象来访问getInstance()方法。*/
             return s;
}
}
class SingleDemo{
        public static void main(String [] args){
               Single s1=Single.getInstance(); /* 用类名调用getInstance()方法,得到对象s,那么对象s1的值也是s。这样就保证了Single类的对象在内存中的唯一性。*/
}
}

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

6 个回复

倒序浏览
静态成员static Single s应该声明为私有,否则可以这样:Single.s=null,
回复 使用道具 举报 1 0
sisel 发表于 2015-4-17 09:49
静态成员static Single s应该声明为私有,否则可以这样:Single.s=null,

嗯,对,谢谢提醒,我还是需要多加巩固。:handshake
回复 使用道具 举报
这个是饿汉式的,能总总结一些懒汉式的就比较好了
回复 使用道具 举报
getInstance() 方法应该定义成公有的,而不是private
回复 使用道具 举报
lwj123 发表于 2015-4-17 10:16
这个是饿汉式的,能总总结一些懒汉式的就比较好了

嗯,好,毕老师说开发用饿汉式比较多,懒汉式的我还没掌握熟练,今天回去之后再总结一下,谢谢版主关心,:handshake
回复 使用道具 举报
不错不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马