<%@ page contentType="text/html; charset=gb2312"%> 讲解JAVA设计模式中的单例模式 (1)
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
讲解JAVA设计模式中的单例模式 (1)
     发布者: 发布时间:2008-03-25
        1.定义

单例模式是对象的创建模式的一种,它保证一个类有且只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类则称为单例类。

2.使用场合

简而言之,就是任何只需要一个实例的地方.例如,窗口管理器,假脱机打印设备,数据库连接池。具体应用中,配置信息类,管理类,控制类,门面类,代理类通常被设计为单例类.

(1)配置信息类

负责配置文件的解析,通常被设计为单例类

(2)管理类

如连接池管理类,通常被设计为单例类

(3)控制类

struts的ActionServlet类,也是单例类。

如下,只需在web.xml配置以下ActionServlet,tomcat容器自动装载后,即可完成对整个web系统提供ActionServlet实例。

Java代码:

<servlet>   
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

(4)门面类

说到门面类,就不能不提门面(Facade)模式。客户端与多个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。这个统一的门面(Facade)对象就是门面类。在门面模式中,通常只需要一个门面类,并且此门面类只有一个实例,换言之它是一个单例类。但这不是绝对的。

(5)代理类

在Jive中,使用代理模式实现权限访问的入口,就采用了单例模式。

3.单例模式在Java语言的实现

单例模式在Java语言的实现上有三种情况:饿汉式单例类,懒汉式单例类,登记式单例类。

(1)饿汉式单例类

饿汉式单例类饿汉式单例类是在Java 语言里实现得最为简便的单例类。在类被加载时,就会将自己实例化。

Java代码:

public class Singleton2{      
//注意这是private
private static Singleton2 theInstance = new Singleton2();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton2 getInstance(){
return theInstance;
}
}


public class Singleton2{
//注意这是private
private static Singleton2 theInstance = new Singleton2();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton2 getInstance(){
return theInstance;
}
}

TAG:
设计模式



(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
讲解JAVA设计模式中的单例模式 (1)
讲解JAVA设计模式中的单例模式 (2)
讲解JAVA设计模式中的单例模式 (2)
掌握删除oracle10g垃圾表的最新方法
Oracle 11g五大特性
如何优化Oracle数据库保持优良性能
 
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号