Java Singleton ģʽÓÃÀ´±£Ö¤ÔÚÔËÐеÄÓ¦ÓóÌÐòÖУ¬Ò»¸öClassÖ»ÊÇʵÀý»¯Ò»´Î£¬Ò²¾ÍÊÇÖ»ÓÐÒ»¸öÏàÓ¦µÄ¶ÔÏó´æÔÚ¡£ÔÚ web ³ÌÐòÖÐÎÒÃÇ»áÓÃÒ»¸öºËÐĵķÖÅ书ÄܵÄServlet³ÌÐò£¬ÔÚÕâÀïÎÒÃǾͿÉÒÔÔËÓÃÕâÖÖÉè¼ÆÄ£Ê½ÁË¡£
Ò»°ãSingletonģʽͨ³£Óм¸ÖÖÖÖÐÎʽ:
µÚÒ»ÖÖÐÎʽ:
¶¨ÒåÒ»¸öÀ࣬ËüµÄ¹¹Ô캯ÊýΪprivateµÄ£¬ËüÓÐÒ»¸östaticµÄprivateµÄ¸ÃÀà±äÁ¿£¬ÔÚÀà³õʼ»¯Ê±ÊµÀý»°£¬Í¨¹ýÒ»¸öpublicµÄgetInstance·½·¨»ñÈ¡¶ÔËüµÄÒýÓÃ,¼Ì¶øµ÷ÓÃÆäÖеķ½·¨¡£
public class Singleton {
private Singleton(){}
//ÔÚ×Ô¼ºÄÚ²¿¶¨Òå×Ô¼ºÒ»¸öʵÀý£¬ÊDz»ÊÇºÜÆæ¹Ö£¿
//×¢ÒâÕâÊÇprivate Ö»¹©ÄÚ²¿µ÷ÓÃ
private static Singleton instance = new Singleton();
//ÕâÀïÌṩÁËÒ»¸ö¹©Íⲿ·ÃÎʱ¾classµÄ¾²Ì¬·½·¨£¬¿ÉÒÔÖ±½Ó·ÃÎÊ
public static Singleton getInstance() {
return instance;
}
}
µÚ¶þÖÖÐÎʽ:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//Õâ¸ö·½·¨±ÈÉÏÃæÓÐËù¸Ä½ø£¬²»ÓÃÿ´Î¶¼½øÐÐÉú³É¶ÔÏó£¬Ö»ÊǵÚÒ»´Î
//ʹÓÃʱÉú³ÉʵÀý£¬Ìá¸ßÁËЧÂÊ£¡
if (instance==null)
instance£½new Singleton();
return instance; }
}
ÆäËûÐÎʽ:
¶¨ÒåÒ»¸öÀ࣬ËüµÄ¹¹Ô캯ÊýΪprivateµÄ£¬ËùÓз½·¨ÎªstaticµÄ¡£
Ò»°ãÈÏΪµÚÒ»ÖÖÐÎʽҪ¸ü¼Ó°²È«Ð©