`

如何在java中实现singleton模式:

    博客分类:
  • Java
阅读更多
如何在java中实现singleton模式:

首先保证类中有唯一的一个构造器,而且是private的,私有的,就是除了在该类中其他地方都不可以访问的。

其次有一个私有的private该类型的变量,这个变量可以在声明的的时候就实例化,也可以在构造器中调用的时候再实例化,但是,在构造器中实例化时要先判断:
private A a;

public A(){
   if(a == null)
       a= new A();
} 

这样就可以保证只有一个A的实例,

淡然最重要的是要有个public的返回A类型变量的方法,用来返回这个唯一的变量
public A returnA(){
   return a;
}

这样就可以了,实际上就三方面:
1,一个私有的构造器
2,一个私有的该类类型的变量
3,必须有一个共有的返回类型为该类类型的方法,用来返回这个唯一的变量

-----------------------------------------------------------------------------

私有化默认构造方法,声明一个静态方法对外提供此类的实例对象。

singleton模式,保证在类的生命周期里只有一个实例存在,为其他的对像提供服务。
singleton模式要求构造器为私有,保证不能被外部创建,在singleton类里面创建一个对象,为外部提供唯一实例。
多线程的时候要上双锁

最好用饿汉式的
一上来就初始化实例
在取得实例的方法直接返回该实例  这样可以保证多线程时不出问题

-----------------------------------------------------------------------------

单例模式提供一个本对象的实例,私有构造方法,提供一个创建实例的方法

单例模式分为饿汉式和懒汉式:

//饿汉式 - 用JAVA语言的话,本人推荐用这种
public class Singleton{
   private static Singleton instance=new Singleton();

   private Singleton(){
      //构造方法
   }
   public static Singleton getInstance(){
      return instance;
   }
}
 
//懒汉式
public class Singleton{
   private static Singleton instance=null;

   private Singleton(){
      //构造方法
   }
   public synchronized static Singleton getInstance(){
      if(instance==null){
         instance=new Singleton();
      }
      return instance;
   }
}

你学JAVA的话,就用第一种方法饿汉构造来回答,如果用第二种的话,注意线程同步就OK了。
分享到:
评论

相关推荐

    singleton设计模式java实现及对比

    java singleton 不解释不解释不解释不解释

    用Java实现23种设计模式

    用Java实现23种设计模式 1. 创建型模式 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern)...

    23种设计模式的实现(Java 版),java设计模式

    Factory模式,Prototype模式,Builder 模式,Singleton模式,Facade模式,Proxy模式,Adapter模式,Composite模式,Decorator模式....

    单例模式Java实现

    单例模式是最简单的一种设计模式,确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例, 本资源提供了用java语言实现简单的单例模式,供初学者参考

    singleton_单例模式_java_设计模式_

    java设计模式,单例模式的不同实现方式

    Java Bug模式详解

    Java.Bug模式详解 第1章 混乱环境下的灵活方法 1.1 软件设计、实现和维护的趋势 1.1.1 对于稳定、安全 系统的需求增加 1.1.2 传统软件工程技 术的局限性 1.1.3 开放源代码的软 件项目的可利用性 1.1.4 对于...

    大话西游之设计模式_从猴王出世看singleton 配套代码

    本资源为 "大话西游之设计模式_从猴王...该代码在java环境开发,可以正常运行,大家可以通过代码的执行流程,来看一下,我对故事的虚拟过程及实现(实现中不只有singleton一种模式哦) 需要找对应文章的,请看我的博客

    多种设计模式的java实现方式

    有23种设计模式,全部java实现,包括Proxy,singleton,interpreter,factoryMothod等常见设计模式

    敏捷软件开发:原则、模式与实践

    第16章 SINGLETON模式和MONOSTATE模式 第17章 NULL OBJECT模式 第18章 薪水支付案例研究:第一次迭代开始 第19章 薪水支付案例研究:实现 第四部分 打包薪水支付系统 第20章 包的设计原则 第21章 FACTORY模式 第22...

    java设计模式期末考试选择题100道

    适合Java设计模式期末考试选择题复习,形式如下: 10.(单选题)Facade(外观)模式的意图是 正确答案: A A.希望简化现有系统的使用方法,你需要定义自己的接口 B.将一个无法控制的现有对象与一个特定借口相匹配。 C....

    M2_Singleton_单例模式_java_powder53m_arrow51c_

    设计模式之单例模式。Java代码实现。五种实现方式

    Java的23种设计模式疯狂Java总结.doc

    设计模式3 1.1 创立型模式4 1.1.1 工厂方法4 1.1.2 抽象工厂6 1.1.3 建造者模式10 1.1.4 单态模式13 1.1.5 原型模式15 1.2 构造型模式17 1.2.1 适配器模式17 1.2.2 桥接模式19 1.2.3 组合模式23 1.2.4 装饰模式26 ...

    java 面试题 总结

    在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。...

    java 设计模式资料

    附件中是java实现全部的设计模式,包含代码和工程(jbuilder工程),值得收藏. 此目录里包括了一书中所有23种设计模式的实现(Java 版)源码 关于代码的几点说明: 1. 代码为根据个人对Design Pattern的学习理解写...

    Scala和设计模式.pdf

    在当前软件Software设计中最流行要算GoF这本书中提出各种设计模式很多人认为设计模式对于语言(特 别是c/Java)本身不足的处或多或少有些弥补不过如果语言足够强大模式也许没有必要 下面Peter Norvig个例子就非常有...

    Java设计模式(含代码)

    Java设计模式 (含有相关源码) Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 Adapter:将一个类的接口转换成客户希望的另一个接口,使得原来由于接口不兼容而不能...

    java常用代码

    18.Singleton.java java设计模式之单例模式 19.Factory.java 设计模式之工厂模式 20.Swing.java 介绍了java的图形应用 --课程包括了java SE的大部分常用类及其简单用法 如果你对java,android感兴趣,都可以加入...

    设计模式整理(很全)

    创建模式 设计模式之Singleton(单态/单件) 阎宏博士讲解:单例(Singleton)模式 保证一个类只有一个实例,并提供一个访问它的全局访问点 设计模式之Factory(工厂方法和抽象工厂) 使用工厂模式就象使用new一样频繁....

    二十三种设计模式【PDF版】

    会 Java 的人越来越多,但是一直徘徊在语言层次的程序员不在少数,真正掌握 Java 中接口或抽象类的应用不是很多,大家 经常以那些技术只适合大型项目为由,避开或忽略它们,实际中,Java 的接口或抽象类是真正体现 ...

Global site tag (gtag.js) - Google Analytics