设为首页 加入收藏

TOP

Java设计模式之Singleton模式
2014-11-13 00:51:12 来源: 作者: 【 】 浏览:30
Tags:Java 设计模式 Singleton 模式

  Java Singleton 模式用来保证在运行的应用程序中,一个Class只是实例化一次,也就是只有一个相应的对象存在。在 web 程序中我们会用一个核心的分配功能的Servlet程序,在这里我们就可以运用这种设计模式了。


  一般Singleton模式通常有几种种形式:


  第一种形式:


  定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。


  public class Singleton {


  private Singleton(){}


  //在自己内部定义自己一个实例,是不是很奇怪?


  //注意这是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; }


  }


  例子:


  /**


  * 数据库连接管理类


  */


  public class DBManager {


  private static Logger logger = Logger.getLogger(DBManager.class);


  /**


  * 本静态变量用来存放本系统启动时由Struts生成的连接池的数据源


  */


  private static DataSource datasource;


  /**


  * 由于本类使用单态设计模式,因此不允许在使用中通过New进行实例化,那么本类就要提供一个 此类的实例供外界使用,这就是供外界使用的实例


  */


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇java版俄罗斯方块 下一篇Java设计模式之Facade模式

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: