java中单例设计模式

/*

  • 设计模式:对问题行之有效的解决方式,其实它是一种思想

  • 1.单例设计模式

  • 解决的问题:就是可以保证一个类在内存中的对象的唯一性

  • 必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性

  • 如何保证对象的唯一性呢?

  • 1.不允许其他程序用new创建该类对象

  • 2.在该类创建一个本类实例

  • 3.对外提供一个方法让其他程序可以获取该对象。

  • 步骤:

  • 1.私有话该类的构造函数

  • 2.通过new在本类创建一个本类的对象

  • 3.定义一个公有的方法,将创建的对象返回

  • 单例设计的内存的理解:

  • 内存中:栈、堆、方法区(方法列表和静态区)

  • */

     class Single{//简称饿汉式单例模式  --- 类一加载就存在了 --- 开发常用的
         private static Single s = new Single();//成员变量私有化,以便可以控制
         private Single(){};
         public static Single getInstance(){
       return s;
         }
     }
     public class SingleDemo {
     public static void main(String[] args){
         Single s1 = Single.getInstance();
         Single s2 = Single.getInstance();
         System.out.println("s1"+s1+"\n"+"s2"+s2);
    
     
     TestSingle t1 = TestSingle.getInstance();
     TestSingle t2 = TestSingle.getInstance();
     t1.setNum(10);
     t2.setNum(20);
     System.out.println(t1.getNum());
     System.out.println(t2.getNum());
       }
     }
    class TestSingle{
     private int num;
     //如果想要保证单例
     private static TestSingle t = new TestSingle();
     private TestSingle(){};
     public static TestSingle getInstance(){
       return t;
     }
     public void setNum(int num){
             this.num = num;
     }
     public int getNum(){
         return num;
       } 
     }
    

/*

  • 单例的另外一种表现形式: 简称懒汉式加载的单例模式
  • */
 class Single2{ //类加载进来没有对象,只有调用了getInstance方法时,才会创建对象
private static Single2 s = null;
private Single2(){};
public static Single2 getInstance()
{
    if(s == null)
        s = new Single2();
    return s;
}
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,906评论 18 399
  • 1 场景问题# 1.1 读取配置文件的内容## 考虑这样一个应用,读取配置文件的内容。 很多应用项目,都有与应用相...
    七寸知架构阅读 11,775评论 12 68
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 5,386评论 0 3
  • /* 模式: 模式就是解决一类问题的固定步骤 软件行业的23种设计模式: 单例设计模式 模板设计模式 装饰设计模式...
    Michael_林阅读 2,656评论 0 0
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 10,148评论 1 114