打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
单例模式

一 模式定义
1 某个类只能有一个实例。
2 该类必须自行创建这个实例。
3 该类必须自行向整个系统提供这个实例。

 

二单例模式举例
1 模式分析


 
2 使用同步线程安全创建单例对象

Java代码  
  1. package com.demo.singleton;  
  2.   
  3. public class Singleton {  
  4.   
  5.     // 类共享实例对象 实例化  
  6.     private static Singleton singleton = null;  
  7.   
  8.     // 私有构造方法  
  9.     private Singleton() {  
  10.         System.out.println("-- this is Singleton!!!");  
  11.     }  
  12.   
  13.     // 获得单例方法  
  14.     public synchronized static Singleton getInstance() {  
  15.         // 直接返回共享对象  
  16.         if(singleton == null)  
  17.         {  
  18.             singleton = new Singleton();  
  19.         }  
  20.         return singleton;  
  21.     }  
  22.   
  23. }  

 3 创建一个类全局对象实例作为单例对象

Java代码  
  1. package com.demo.singleton;  
  2.   
  3. /** 
  4.  * 单例设计模式 
  5.  *  
  6.  * @author 
  7.  *  
  8.  */  
  9. public class Singleton {  
  10.   
  11.     // 类共享实例对象 实例化  
  12.     private static Singleton singleton = new Singleton();  
  13.   
  14.     // 私有构造方法  
  15.     private Singleton() {  
  16.         System.out.println("-- this is Singleton!!!");  
  17.     }  
  18.   
  19.     // 获得单例方法  
  20.     public static Singleton getInstance() {  
  21.         // 直接返回共享对象  
  22.         return singleton;  
  23.     }  
  24.   
  25. }  

 4 单例客户端代码

Java代码  
  1. package com.demo;  
  2.   
  3. import com.demo.singleton.Singleton;  
  4.   
  5. /** 
  6.  * 客户端应用程序 
  7.  *  
  8.  * @author 
  9.  *  
  10.  */  
  11. public class Client {  
  12.   
  13.     /** 
  14.      * @param args 
  15.      */  
  16.     public static void main(String[] args) {  
  17.         // 首先 检验是否能用new操作符创建Singleton对象实例  
  18.         Singleton singleton = Singleton.getInstance();  
  19.         // 在此获得Singleton对象实例  
  20.         Singleton singleton2 = Singleton.getInstance();  
  21.         // 比较两个对象是否是同一个对象实例  
  22.         if (singleton == singleton2) {  
  23.             System.out.println("--这是同一个对象!");  
  24.         } else {  
  25.             System.out.println("--这是不同的对象!");  
  26.         }  
  27.     }  
  28. }  

 运行结果
-- this is Singleton!!!
--这是同一个对象!


三设计模式
1 确保某个类只有一个实例。
2 自行实例化并向整个系统提供这个实例。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java单例模式深入详解
JAVA设计模式之单例模式
面试高频-吃透单例设计模式
深入灵魂的考验,每行注释都是灵魂的单例模式,源码+实例降临
5.3.10 思考单例模式
Java单例模式(Singleton)以及实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服