JAVA设计模式之Singleton

本文介绍了一个使用Java实现的Singleton模式示例,通过控制类的实例化过程,确保在整个应用程序中只存在一个实例,并提供全局访问点。文章展示了如何在不同情况下获取相同的实例,并解释了Singleton模式的三种常见实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java 代码
  1. public class Tenn&Amber{                 
  2.       private static Tenn&Amber tennamber;                     
  3.       private Tenn&Amber(){                     
  4.               System.out.println("we are husband and wife!");                     
  5.       }                       
  6.       private Tenn&Amber(String anything){                     
  7.               System.out.println("we are husband and wife!");                     
  8.       }                       
  9.       public static Tenn&Amber getInstance(){                 
  10.              if(tennamber == null)                 
  11.                    tennamber = new Tenn&Amber();                 
  12.              return tennamber;                 
  13.       }                     
  14.       public static Tenn&Amber getInstance(String anything){                 
  15.              if(tennamber == null)                 
  16.                    tennamber = new Tenn&Amber(anything);                 
  17.              return tennamber;                 
  18.       }                     
  19. }                     
  20.                     
  21. public class TestCouple{                     
  22.       public static void main(String [] args){                  
  23.              Tenn&Amber tenn = Tenn&Amber.getInstance();                    
  24.              Tenn&Amber amber = Tenn&Amber.getInstance();                 
  25.               if(tenn == amber)                 
  26.                     System.out.println("不错的老婆,不错的老公,不错的人!");                     
  27.              Tenn&Amber mistakenTenn = Tenn&Amber.getInstance("do some mistaken things");                    
  28.               if(mistakenTenn == amber)                 
  29.                     System.out.println("不错的老公,不错的老婆,不错的人!");                     
  30.                 
  31.       }                     
  32. }   

程序运行结果:
we are husband and wife!
不错的老婆,不错的老公,不错的人!
不错的老公,不错的老婆,不错的人!

Singleton 是一种创建性模型,它用来确保只产生一个实例,并提供一个访问它的全局访问点。对一些类来说,保证只有一个实例是很重要的,比如有的时候,数据库连接或 Socket 连接要受到一定的限制,必须保持同一时间只能有一个连接的存在。
实现 Singleton 模式的办法通常有三种。
一、用静态方法实现 Singleton;
二、以静态变量为标志实现 Singleton;
三、用注册器机制来创建 Singleton。

当成为夫妻后,“不错的老婆,不错的老公,不错的人!”,即使老公犯了些小错误,也依然是“不错的老公,不错的老婆,不错的人!”,因为:

java 代码

  1. public static Tenn&Amber getInstance(String anything){                    
  2.              if(tennamber == null)                    
  3.                    tennamber = new Tenn&Amber(anything);                    
  4.              return tennamber;                    
  5.       }            


因为在老公犯错之前,已经是夫妻了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值