`

Java中的单态模式

阅读更多
(部分内容转载)
单态定义:
  Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
  在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。
  还有, singleton能够被状态化; 这样,多个单态类在一起就可以作为一个状态仓库一样向外提供服务,比如,你要论坛中的帖子计数器,每次浏览一次需要计数,单态类能否保持住这个计数,并且能synchronize的安全自动加1,如果你要把这个数字永久保存到数据库,你可以在不修改单态接口的情况下方便的做到。
  另外方面,Singleton也能够被无状态化。提供工具性质的功能,
  Singleton模式就为我们提供了这样实现的可能。使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。
  我们常常看到工厂模式中类装入器(class loader)中也用Singleton模式实现的,因为被装入的类实际也属于资源。
  如何使用?
  一般Singleton模式通常有几种形式:
  第一种形式:
public class Singleton {
	  private Singleton(){}
	  private static Singleton instance = new Singleton();
	  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; 
	    }
	}

  使用Singleton.getInstance()可以访问单态类。
  上面第二种形式是lazy initialization,也就是说第一次调用时初始Singleton,以后就不用再生成了。注意到lazy initialization形式中的synchronized,这个synchronized很重要,如果没有synchronized,那么使用getInstance()是有可能得到多个Singleton实例。关于lazy initialization的Singleton有很多涉及double-checked locking (DCL)的讨论,有兴趣者进一步研究。不过一般认为第一种形式要更加安全些。
分享到:
评论

相关推荐

    Java中单态设计模式

    ### Java中单态设计模式详解 #### 一、引言 设计模式是在长期软件开发过程中提炼出来的最佳实践,它们提供了一种标准化的方式用于解决特定类型的问题。对于Java开发者而言,熟悉并掌握各种设计模式是非常重要的,...

    JAVA设计模式(单态模式和简单工厂模式)

    单态模式的定义: Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 在项目的很多地方都会用到它,比如说数据库的链接。 使用Singleton的好处还在于可以节省内存,因为它限制了实例...

    【Java设计模式】单态模式

    单态模式是在面向对象设计中实现类似单例行为的一种替代方法,确保Java应用程序中的共享状态。它强制实现一种独特的行为,即类的所有实例共享相同的状态。与单例模式不同,单例模式将类限制为单个实例,单态模式允许...

    单态模式(代码)

    单态模式(Singleton Pattern)是软件设计模式中的一种,它保证了类只有一个实例,并提供一个全局访问点。这种模式在很多场景下非常有用,比如配置管理、线程池、缓存管理和日志记录等,因为它可以确保在整个系统中...

    单态模式(PPT)

    在Java中,单态模式的实现通常有两种常见方式:饿汉式和懒汉式。饿汉式是在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快,线程安全。而懒汉式是在类被加载后,第一次调用getInstance方法时才初始...

    Java实现的单态登陆

    在面向对象编程中,单态模式保证一个类只有一个实例,并提供一个全局访问点。在单态登录的场景下,这个实例通常是一个包含用户登录状态信息的对象。 1. **单态模式实现**: - 在Java中,我们通常通过私有构造函数...

    单态模式和简单工厂模式

    单态模式(Singleton Pattern)和简单工厂模式(Simple Factory Pattern)是软件设计中常见的两种创建型设计模式。在Java编程中,它们都是为了简化对象的创建过程,但各自有着不同的应用场景和特点。 单态模式是一...

    单态模式和工厂模式.ppt

    单态模式和工厂模式是两种常见的设计模式,在软件开发中有着广泛的应用。它们各自解决了不同的问题,但在确保对象创建和管理方面提供了有力的支持。 **单态模式(Singleton Pattern)** 单态模式是一种创建型设计...

    简单的Java单态例子

    这个一个简单的java例子,可以为新手加深对java单态模式的理解.....

    单态模式的设计和应用

    在Java中,实现单态模式主要有两种方式: 1. **饿汉式(Eager Initialization)**: ```java public class Singleton { private Singleton() {} // 构造函数私有化 private static Singleton instance = new ...

    [浪曦原创]JAVA设计模式 第2讲 单态模式和简单工厂模式(jzkangta).rar

    Java设计模式是软件开发中的重要概念,它们是解决常见...这个压缩包资料“[浪曦原创]JAVA设计模式 第2讲 单态模式和简单工厂模式(jzkangta)”应包含了详细的讲解和示例代码,可以帮助深入理解和应用这两种设计模式。

    设计模式一点通之单态模式

    单态模式(Singleton Pattern)是设计模式中的一种基础模式,主要用来确保一个类只有一个实例,并提供一个全局访问点。在软件工程中,当一个类只能有一个实例而且客户可以从一个众所周知的访问点访问它时,这样的...

    单态模式的练习

    单态模式(Singleton Pattern)是设计模式中的一种,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这个模式通常用于控制资源的共享,比如数据库连接、线程池或者配置对象等。在Java或其他面向对象...

    单态模式1---马克-to-win Java视频

    单态模式 马克-to-win Java视频 Singleton 单例模式

    单态模式2---马克-to-win java视频

    单态模式 马克-to-win java视频 Singleton 单例模式

    单态模式3---马克-to-win java视频

    单态模式 马克-to-win java视频 Singleton 单例模式

    DataSource的单态模式(SingleTon)程序---马克-to-win java视频

    DataSource的单态模式(SingleTon)程序---马克-to-win java视频 数据源 单态模式 dataSource Singleton

    Java设计模式之单态模式(Singleton模式)介绍

    单态模式(Singleton模式)是Java设计模式中的一种,它的主要目标是确保一个类在整个应用程序中只有一个实例存在。这种模式的应用场景广泛,特别是在需要全局共享的资源管理、配置中心、日志服务等场合非常常见。 ...

    java代码笔记2010-05-31:继承this()的使用多态;单态;静态初始化;==比较的是地址;参数传递的是个值的拷贝还是引用的传递;循环菱形

    总结一下,本篇笔记涵盖了Java编程中的重要概念,包括构造器链、多态性、单态模式、静态初始化和对象引用比较,以及参数传递机制。理解并熟练运用这些知识点,能帮助开发者写出更加高效、可靠的Java代码。

    Java设计模式 设计模式介绍

    章节介绍:1、爪哇语言结构性模式之变压器模式介绍 2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立性模式介绍 4、单态创立性模式介绍 5、单态创立性模式介绍 6、观察者模式介绍7、责任链模式 8、设计模式之...

Global site tag (gtag.js) - Google Analytics