• java单例模式


    单例设计模式:解决一个类在内存中只存在一个对象
     多用于环境变量设置等
     单例模式的要求:1.只能有一个对象,禁止其他程序建立该类对象
             2.要提供外界对对象的访问方式
     解决办法:1.将构造方法私有化,可以禁止其他程序建立该类对象
          2.在本类中自定义一个私有对象。注:因为访问方式是静态的,所以对象也要是静态的
          3.提供一个public static 的访问方式,以为要通过类名来访问,而不是通过对象来访问

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

     1 public class singleModel1 {
     2     //定义私有构造方法
     3     private singleModel1(){}
     4     //定义私有对象
     5     private static singleModel1 s=new singleModel1();
     6     //定义对象获取方法
     7     public static singleModel1 getInstance(){
     8         return s;
     9     }
    10 }
    11 /*
    12  * 还有一种单例模式如下,但是不建议大家用下面的方法,因为涉及到了线程安全问题。在这里只是给大家提一下
    13  * */
    14 class singleModel2 {
    15     //定义私有构造方法
    16     private singleModel2(){}
    17     //定义私有对象变量,但是并不赋值
    18     private static singleModel2 s=null;
    19     //定义对象获取方法并赋值
    20     public static singleModel2 getInstance(){
    21         if(s==null){
    22             s=new singleModel2();
    23         }
    24         return s;
    25     }
    26 }

    其实单例模式本质上还是public,private,static关键字的使用。
    通过private关键字,禁止了其他类对该类的对象创建,只能通过自己内部进行创建对象
    通过static关键字,可以实现了对象在该类在家在过程中就已经实例化。
    并且,通过static,可以实现不创建对象,就能调用其中的方法。

  • 相关阅读:
    centos7安装rabbitmq 总结
    python第六十三天-- 第十一周作业
    python第六十一天,第六十二天 redis
    python第六十天-----RabbitMQ
    python第五十四天--第十周作业
    python第五十三天--进程,协程.select.异步I/O...
    python第五十二天---第九周作业 类 Fabric 主机管理程序
    python第五十一天----线程,Event,队列
    Python基础之-面向对象编程(引言)
    Python中的模块
  • 原文地址:https://www.cnblogs.com/zxxiaoxia/p/4175437.html
Copyright © 2020-2023  润新知