`
superwind
  • 浏览: 34718 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java实现单态的三种方法

阅读更多

第一种方法:

public class Singleton
{
       public static final Singleton INSTANCE = new Singleton();
       private Singleton()
      {
             //do something
      }
      public void otherMethod()
      {
            //do something
      }
}

 

第二种方法:

 

public class Singleton
{
      private static final Singleton INSTANCE = new Singleton();
      private Singleton()
      {
             //do something
      }

      public static Singleton getInstance()
      {
               return INSTANCE;
      }
      public void otherMethod()
      {
            //do something
      }
}

 第三种方法:用枚举实现,只能在java1.5之后版本中用

 

public enum Singleton
{
       INSTANCE;
       public void otherMethod()
       {
               //do something
       }
}

 

三种方法的比较:

 

    第一种方法的好处在于,非常的直观,public 的静态域清楚的表明是Singleton类是一个单态;

 

    第二种方法的好处在于,静态工厂方法保留了灵活性,可以灵活地在工厂方法里面修改代码,比如改成每个调用这个方法的线程返回一个唯一实例,甚至还可以修改成不返回唯一的实例。

 

    第三种方法,更加简洁,枚举类型保证了Singleton类的唯一性,而且还提供了序列化功能,因为枚举类的基类Enum实现了Serializable接口。

    因此Joshua Bloch推荐使用第三种, 他在effective java写道:

 “a single-element enum type is the best way to implement a singleton”.

 

 

 

分享到:
评论

相关推荐

    Java实现的单态登陆

    综上所述,Java实现的单态登录涉及单态模式、会话管理、跨域共享、过滤器、分布式环境下的同步以及安全性考虑等多个方面。实际开发时,应根据项目需求选择合适的方法和工具进行实现。提供的压缩包文件...

    Java中单态设计模式

    接下来,引入如何实现单态设计模式。首先需要将构造函数设为私有,以阻止从类的外部创建实例。然后,在类内部创建一个静态私有的类实例,并提供一个公共静态方法来获取该实例。示例如下: ```java class Singleton ...

    java单态例子

    是个使用java实现的单态例子,开始接触java单态的或是不了解单态是怎么实现的同僚,是个不错的参考

    单态登录——只能在一个机器上登录(完整实例)

    单态登录,也被称为单一登录(Single Sign-On...以上是Java实现单态登录涉及的主要技术点。在实际项目中,开发者需要根据具体需求和架构选择合适的实现策略,并确保在提升用户体验的同时,兼顾系统的安全性和可扩展性。

    【Java设计模式】单态模式

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

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

    单态(Singleton)设计模式是一种限制类实例化为一个对象的模式,常用于配置中心、线程池等场景。典型的单态实现如下: ```java public class Singleton { private static Singleton instance; private ...

    23种设计模式的java实现

    23种设计模式的java实现。创建型 抽象工厂模式 http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html 工厂方法 http://www.cnblogs.com/java-my-life/archive/2012/03/25/2416227.html 建造者模式 ...

    单态模式(代码)

    在Java、C#等面向对象编程语言中,单态模式的实现通常分为几种方式: 1. 饿汉式(Eager Initialization):在类加载时就完成实例化,这种方式保证了单例的唯一性,同时也确保了线程安全。但是可能会造成内存浪费,...

    单态模式(PPT)

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

    MyEclipse\单态.rar

    // 实现单态模式 // ... public Connection getConnection() { // 获取并返回数据库连接 } public void releaseConnection(Connection conn) { // 释放数据库连接 } } ``` 总的来说,单态模式是一种...

    Java语言中的构造方法私有化.pdf

    Java语言中的构造方法私有化是一种常见的编程技巧,主要用于实现特定的设计模式,如单态模式(Singleton Pattern)。在Java中,私有构造方法是通过将构造函数声明为private来实现的,这使得其他类无法直接实例化该类...

    单态模式的设计和应用

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

    oracle proxool jar jdbc jar包 proxool源码包 Java实现 oracle proxool 实例

    `Java实现oracle proxool 单态的例子` 指的可能是一个Java程序,它展示了如何在单例模式下配置和使用Oracle Proxool。单例模式是一种设计模式,确保一个类只有一个实例,并提供全局访问点。在数据库连接池的上下文中...

    单态模式的练习

    在Java或其他面向对象语言中,单态模式的实现有多种方式,但核心思想都是限制类的实例化过程。 一、单态模式的基本结构 单态模式通常包含以下关键部分: 1. 单例类:这个类只能被实例化一次,它负责创建自己的唯一...

    Java23种设计模式

    单态模式是一种创建型模式,提供了一种创建对象的方法,可以根据需要创建不同的对象。单态模式的优点是可以根据需要创建不同的对象,而不需要关心对象的创建细节。 1.1.5 原型模式 原型模式是一种创建型模式,提供...

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

    在Java中,自Java 5起,可以使用`Enum`来实现单态模式,这是线程安全且具有良好性能的方式: ```java public enum Singleton { INSTANCE; public void whateverMethod() { // ... } } ``` 单态模式的优点包括...

    Java中23种设计模式(个人整理实用).doc

    桥接模式是一种结构型设计模式,它提供了一种将抽象部分与实现部分分离的方式,解决了类之间的耦合问题。 3. 组合模式(Composite Pattern) 组合模式是一种结构型设计模式,它提供了一种将对象组合成树形结构的...

    单态登录的源代码

    单态登录(Single Sign-On,简称SSO)是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。在Web开发领域,尤其是使用JSP和JavaWeb技术栈时,单态登录对于构建大型、多模块的...

    java类的设计举例-animal

    5. 实现单态设计模式 6. 加异常信息 7. 加入多线程 8. 使用集合(可选) 二.设计场景,实现其要求 场景设计在一间公司,拥有很多的小猫小狗等宠物可以出卖。 1. 输出9只动物的全部信息,举例代表全部动物的信息,...

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

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

Global site tag (gtag.js) - Google Analytics