Java设计模式之单例(件)模式

简介:
单件模式
   在开发的过程中,有些时候只需要一个对象,如缓存,对话框,注册表,数据库连接或线程池等对象,为了确保在整个应用程序中能够保证该对象是唯一的,引入了单件模式。
      单件模式,确保一个类只有一个实例,并提供一个全局访问点。
   单件模式的一般组成:
   1)定义一个该类的private static变量,确保是创建一次
   2)设置其无参构造器为private
   3)提供一个全局访问点,即public static  返回该类的实例化。
      这种常规的做法,在单线程中可以使用,但是对于多线程就有可能会使类有多个对象了。   3 “双重检查枷锁”,在getInstance中减少使用同步。首先检查是否创建了实例,如果尚未创建,才进行同步,在同步内再次检查是否创建。这种可以减少同步等待的时间。
   
package com.whut.singleton;

public  class SingletonObject {
  
   private  volatile  static SingletonObject singleObject;
   private SingletonObject(){}
  
   public  static     synchronized SingletonObject getInstance()
  {
     if(singleObject== null)
    {
       synchronized(SingletonObject. class)
      {
         if(singleObject== null)
        {
          singleObject= new SingletonObject();
        }
      }
    }
     return singleObject;
  }
}

  不能继承单件类,因为单件类的构造器是私有的,而继承后的子类均需要调用该构造器,可是该构造器是私有的,则就不能继承,一旦改了构造器访问域,则就会使单件类受到破坏。

本文转自 zhao_xiao_long 51CTO博客,原文链接:http://blog.51cto.com/computerdragon/1155669

相关文章
|
10天前
|
设计模式 SQL 算法
设计模式了解哪些,模版模式
设计模式了解哪些,模版模式
19 0
|
6天前
|
设计模式 Java 数据库
小谈设计模式(2)—简单工厂模式
小谈设计模式(2)—简单工厂模式
|
11天前
|
设计模式 监控 Java
设计模式 - 观察者模式(Observer):Java中的战术与策略
【4月更文挑战第7天】观察者模式是构建可维护、可扩展系统的关键,它在Java中通过`Observable`和`Observer`实现对象间一对多的依赖关系,常用于事件处理、数据绑定和同步。该模式支持事件驱动架构、数据同步和实时系统,但需注意避免循环依赖、控制通知粒度,并关注性能和内存泄漏问题。通过明确角色、使用抽象和管理观察者注册,可最大化其效果。
|
3天前
|
设计模式 算法 Java
小谈设计模式(30)—Java设计模式总结
小谈设计模式(30)—Java设计模式总结
|
4天前
|
设计模式 存储 Java
Java设计模式:解释一下单例模式(Singleton Pattern)。
`Singleton Pattern`是Java中的创建型设计模式,确保类只有一个实例并提供全局访问点。它通过私有化构造函数,用静态方法返回唯一的实例。类内静态变量存储此实例,对外仅通过静态方法访问。
11 1
|
6天前
|
存储 Java
模式匹配魔法:Java 21中switch语句的巨大进化
模式匹配魔法:Java 21中switch语句的巨大进化
9 0
|
6天前
|
设计模式 Java
小谈设计模式(9)—工厂方法模式
小谈设计模式(9)—工厂方法模式
|
8天前
|
设计模式 算法 Java
23种设计模式,模板方法模式的概念优缺点以及JAVA代码举例
【4月更文挑战第10天】模板方法模式是一种行为设计模式,它定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些特定步骤。
11 0
|
9天前
|
设计模式 Java
23种设计模式,状态模式的概念优缺点以及JAVA代码举例
【4月更文挑战第9天】状态模式是一种行为设计模式,允许一个对象在其内部状态改变时改变它的行为,这个对象看起来似乎修改了它的类。
25 4
|
11天前
|
设计模式 Java
23种设计模式,命令模式的概念优缺点以及JAVA代码举例
【4月更文挑战第7天】命令模式是一种行为设计模式,它将请求或简单操作封装为一个对象。这种模式允许用户通过调用对象来参数化其他对象的方法,并能保存、排队和执行方法调用。
16 1