• 设计模式之-单例模式(JAVA实现)
  • 勇在天涯 发表于 2016/3/3 13:05:00 | 分类标签: 单例模式 设计模式 架构设计
  •  单例设计模式:解决一个类在内存中只存在一个对象多用于环境变量设置等

     单例模式的要求:

    1.只能有一个对象,禁止其他程序建立该类对象   
    2.要提供外界对对象的访问方式

     解决办法:

    1.将构造方法私有化,可以禁止其他程序建立该类对象 
    2.在本类中自定义一个私有对象。注:因为访问方式是静态的,所以对象也要是静态的
    3.提供一个public static 的访问方式,以为要通过类名来访问,而不是通过对象来访问

     提示:这里的单利模式是很简单的一个举例,需要其他的功能可以添加,例如在student类中,加入这三步,也是一样的。只不过student类只有一个对象了,和平时的应用不太符合。

    public class singleModel1 {
    //定义私有构造方法
    private singleModel1(){}
    //定义私有对象
    private static singleModel1 s=new singleModel1();
    //定义对象获取方法
    public static singleModel1 getInstance(){
    return s;
    }
    }
    /*
    * 还有一种单例模式如下,但是不建议大家用下面的方法,因为涉及到了线程安全问题。在这里只是给大家提一下
    * */
    class singleModel2 {
    //定义私有构造方法
    private singleModel2(){}
    //定义私有对象变量,但是并不赋值
    private static singleModel2 s=null;
    //定义对象获取方法并赋值
    public static singleModel2 getInstance(){
    if(s==null){
    s=new singleModel2();
    }
    return s;
    }
    }
    其实单例模式本质上还是public,private,static关键字的使用。通过private关键字,禁止了其他类对该类的对象创建,只能通过自己内部进行创建对象通过static关键字,可以实现了对象在该类在家在过程中就已经实例化。
    并且,通过static,可以实现不创建对象,就能调用其中的方法.
  • 请您注意

    ·自觉遵守:爱国、守法、自律、真实、文明的原则

    ·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规

    ·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品

    ·承担一切因您的行为而直接或间接导致的民事或刑事法律责任

    ·您在编程中国社区新闻评论发表的作品,本网站有权在网站内保留、转载、引用或者删除

    ·参与本评论即表明您已经阅读并接受上述条款

  • 感谢本文作者
  • 作者头像
  • 昵称:勇在天涯
  • 加入时间:2013/5/15 0:00:00
  • TA的签名
  • 这家伙很懒,虾米都没写
  • +进入TA的空间
  • 以下内容也很赞哦
分享按钮