随笔 - 40, 文章 - 0, 评论 - 20, 引用 - 0
数据加载中……

23种面向对象的设计模式----Singleton模式

  Singleton模式为单态模式或者叫孤子模式,保证一个类只有一个实例,并提供一个访问它的全局访问点。
  Singleton模式的使用范围比较广泛,对于一些类来说,只有一个实例是很重要的。比如,你要论坛中

的帖子计数器,每次浏览一次需要计数,单态类能否保持住这个计数,并且能synchronize的安全自动加

1,如果你要把这个数字永久保存到数据库,你可以在不修改单态接口的情况下方便的做到。
下面是一个简单的示例程序:
package Singleton;
public class TestSingleton { 
 private static TestSingleton  testSingleton = null;
 protected int  count = 0; 
 public static synchronized  TestSingleton getInstance(){
   if( testSingleton ==   null)
    testSingleton = new TestSingleton();
   return testSingleton;
 }
 public void addCount(){
  count ++;
 }
 public void showCount(){
  System.out.println("count :"+count);
 }  
}
我们还可以在这个基础上做一个扩展,如从上面例子中的TestSingleton类扩展出多个子类,在

getInstance方法中控制要使用的是哪个子类,具体实现代码如下:

-----TestSingleton.java
package Singleton;
public class TestSingleton { 
 private static TestSingleton  testSingleton = null;
 protected int  count = 0; 
 public static synchronized  TestSingleton getInstance(){
   if( testSingleton ==   null)
    testSingleton = new SubTestSingleton ();
   return testSingleton;
 }
 public void addCount(){
  count ++;
 }
 public void showCount(){
  System.out.println("TestSingleton count :"+count);
 }  
}

-----SubTestSingleton.java
public class SubTestSingleton extends TestSingleton{
 public void showCount(){
  System.out.println("SubTestSingleton count :"+count);
 }
}

<以上为个人见解,欢迎大家评论!>

posted on 2005-11-13 15:54 月亮 阅读(662) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: