论坛首页 入门技术论坛

JAVA设计模式之Singleton

浏览 1470 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-11-26  
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.       }            


因为在老公犯错之前,已经是夫妻了
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics