Java 入门24 设计模式 单例

打印 上一主题 下一主题

主题 660|帖子 660|积分 1980

 
 饿汉单例模式

SingleInstance
  1. package com.ITheima._static_codeblock;
  2. public class SingleInstance {
  3.     /**
  4.      * 1 把无参构造器私有藏起来
  5.      */
  6.     private SingleInstance(){
  7.     }
  8.     /**
  9.      * 2 定义一个公开的静态的成员变量存储一个类的对象
  10.      * 饿汉:在这里加载静态变量的时候就会创建对象了
  11.      */
  12.     public static SingleInstance instance=new SingleInstance();
  13. }
复制代码
View CodeTest类
  1. package com.ITheima._static_codeblock;
  2. public class Test {
  3.     public static void main(String[] args) {
  4.         SingleInstance s1=SingleInstance.instance;
  5.         SingleInstance s2=SingleInstance.instance;
  6.         SingleInstance s3=SingleInstance.instance;
  7.         System.out.println(s1);
  8.         System.out.println(s2);
  9.         System.out.println(s3);
  10.         System.out.println(s1 == s2 && s2 == s3);//true
  11.     }
  12. }
复制代码
View Code 
懒汉单例模式

 
 SingleInstance1类
  1. package com.ITheima._static_codeblock;
  2. public class SingleInstance1 {
  3.     //1 私有化构造器
  4.     private SingleInstance1() {
  5.     }
  6.     //2 创建一个静态的成员变量存储类的对象,注意此时不能初始化对象
  7.     private static SingleInstance1 instance = null;
  8.     //3定义一个方法 ,让其他地方可以来调用获取一个对象
  9.     public static SingleInstance1 getInstance() {
  10.         //第一次获取对象
  11.         if (instance == null) {
  12.             instance = new SingleInstance1();
  13.         }
  14.         return instance;
  15.     }
  16. }
复制代码
View CodeTest1类
  1. package com.ITheima._static_codeblock;
  2. public class Test1 {
  3.     public static void main(String[] args) {
  4.         SingleInstance1 s1 = SingleInstance1.getInstance();
  5.         SingleInstance1 s2 = SingleInstance1.getInstance();
  6.         SingleInstance1 s3 = SingleInstance1.getInstance();
  7.         System.out.println(s1 == s2 && s2 == s3);//true
  8.     }
  9. }
复制代码
View Code 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

水军大提督

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表