单例模式(单子模式)
来源:互联网 发布:php学费 编辑:程序博客网 时间:2024/04/20 06:52
一、什么是单例模式?
在我们的Java应用程序中,随着应用程序的运行会创建出很多对象。但有时候我们希望在创建某类对象时,无论创建多少次该类对象只有一份在内存中。这就是单例模式。如果我们要实现单例模式首先要保证构造函数私有化,即不允许用户随意调用我本类的构造函数,因为只要通过new操作创建对象,必定要在堆中开辟空间,这样就无法实现单例了。
单例类有如下特点:
§ 单例类只有一个实例。
§ 单例类自行创建并提供这个唯一的实例。
单例模式有以下的特点:
§ 单例类只能有一个实例。
§ 单例类必须自己创建自己的惟一的实例。
§ 单例类必须给所有其他对象提供这一实例。
二、单例模式的实现
第一种实现方式:
- /**
- * 单例模式(饿汉式单例类) 从速度和反应时间角度来讲,饿汉式单例类稍好
- * @author Administrator
- *
- */
- public class Singleton {
- private static Singleton singleton = new Singleton();
- private String value;
- //构造方法要私有
- private Singleton(){
- }
- //提供一个对外的方法
- public static Singleton getSingleton(){
- return singleton;
- }
- public String getValue() {
- return value;
- }
- public void setValue(String value) {
- this.value = value;
- }
- }
第二种实现方法
- /**
- * 单例模式(懒汉式单例类) 单从资源利用效率角度来讲, 懒汉式单例类好些
- * @author Administrator
- *
- */
- public class Singleton2 {
- private static Singleton2 singleton = null;
- private String value;
- //构造方法要私有
- private Singleton2(){
- }
- //提供一个对外的方法
- public static Singleton2 getInstance(){
- if(singleton == null){
- singleton = new Singleton2();
- }
- return singleton;
- }
- public String getValue() {
- return value;
- }
- public void setValue(String value) {
- this.value = value;
- }
- }
测试类:
- public class Test {
- public static void main(String[] args) {
- Singleton s1 = Singleton.getSingleton();
- Singleton2 s2 = Singleton2.getInstance();
- System.out.println(s1.equals(s2));
- s1.setValue("100");
- s2.setValue("200");
- System.out.println(s1.getValue());
- }
- }
- 单例模式(单子模式)
- 单例模式(单子模式)
- 单子模式
- 单子模式
- 单子设计模式
- 单子设计模式
- Singleton单子模式
- 单子模式 简介
- 单子设计模式
- Java单子模式
- 模式四(单子模式)
- 设计模式---单子(Singleton)
- 单子(Singleton)设计模式
- 仿照单子模式的测试
- 单子(Singleton)设计模式
- oracle数据库连接 单子模式详解
- 单子设计模式(Singleton Pattern)
- 2010.02.23 设计模式之单子模式
- 难找的工作...
- Genuitec
- 短信平台的问题终于有眉目了
- javaee.jar与servlet-api.jar
- 运行时判断设备是否为iPad
- 单例模式(单子模式)
- Client使用c#和odp.net连接server oracle
- DropDownList 实现模糊查询
- ODP.NET开发和部署的相关问题
- c#中的构造器,类的修饰符,虚方法,抽象类
- c语言中:字符 char的描述
- Dojo 1.6 官方教程: DataGrid导引
- vs2008 工程配置--路径设置
- dos2unix批量转换的脚本