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

Java编程23种设计模式之单例模式

阅读更多
单例模式是一种常用的软件设计模式。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
这个模式有几个好处:
1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。
2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。
3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如公司的多领导,有时多个领导给你安排工作,那么你一天的工作就会乱成一团),所以只有使用单例模式,才能保证核心交易服务器独立控制整个流程。
举例一个项目中的操作用户的单例模式
public class SystemOperationUser {
//私有静态实力对象
private static SystemOperationUser sou = null;
//私有构造,防止被实例化
private SystemOperationUser() {
}
        //静态创建方法实例
public static SystemOperationUser getInstance() {
if (sou == null) {
sou = new SystemOperationUser();
}
return sou;
}

}
补充:我也在网络上看到单例模式放在多线程中不安全,需要sysnchronized关键字
        public static sysnchronized SystemOperationUser getInstance() {
if (sou == null) {
sou = new SystemOperationUser();
}
return sou;
}
这个方法每一次别调用的的时候,都需要上锁,而实际第一次调用上锁就OK了,所以上面的方法还需要修改一下
         public static SystemOperationUser getInstance() {
if (sou == null) {
sysnchronized(sou ){
                             if (sou == null) {
          sou = new SystemOperationUser();
               }
                          }
                  
               }
return sou;
}
根据网络上的知识,写了一个完美的单例模式
public class SystemOperationUser {
// 私有静态实力对象
private static SystemOperationUser sou = null;

// 私有构造,防止被实例化
private SystemOperationUser() {
}

// 静态创建实例
public static SystemOperationUser getInstance() {
if (sou == null) {
sync();
}
return sou;
}

// 同步
public static synchronized void sync() {
if (sou == null) {
sou = new SystemOperationUser();
}
}

}
分享到:
评论

相关推荐

    23钟设计模式之单例模式

    单例模式是一种常用的设计模式,它的核心思想是在整个应用程序中,一个类只能有一个实例存在。单例模式常用于控制资源的共享,例如数据库连接池、日志服务等。单例模式有多种实现方式,常见的包括懒汉式、饿汉式以及...

    Java设计模式之单例模式的七种写法

    Java设计模式之单例模式的七种写法 单例模式是一种常见的设计模式,它确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机的驱动程序对象常...

    设计模式单例模式和工厂模式综合应用

    "设计模式单例模式和工厂模式综合应用"的主题聚焦于两种常用的设计模式:单例模式和工厂模式,并探讨它们如何协同工作来实现高效、灵活的代码结构。这个主题尤其适用于Java编程语言,因为Java的面向对象特性使得设计...

    Java之23种设计模式解析

    这份资料详细介绍了在Java编程中常用的23种设计模式,旨在提升开发者对于软件设计的理解和应用能力,从而写出更加高效、可维护和可扩展的代码。 首先,我们来看一下23种设计模式的分类:它们可以分为三大类,即创建...

    设计模式之单例模式(结合工厂模式)

    单例模式是软件设计模式中的一种经典模式,它保证了类只有一个实例存在,并提供一个全局访问点。在Java等面向对象编程语言中,单例模式常用于管理共享资源,如数据库连接池、线程池或者配置文件等。结合工厂模式,...

    Java 23种设计模式09单例模式

    在Java中,实现单例模式通常涉及到以下几个关键点: 1. **私有构造函数**:防止外部直接实例化。 2. **静态私有成员变量**:用于保存该类的唯一实例。 3. **公有静态工厂方法**:用于检查实例是否存在,若不存在则...

    设计模式之单例模式Java实现和类设计图

    本次我们将深入探讨两种设计模式——单例模式和装饰模式,它们在Java编程中都有着广泛的应用。 首先,让我们来理解“单例模式”。单例模式是一种创建型设计模式,其核心思想是保证一个类只有一个实例,并提供一个...

    java设计模式之单例模式.zip

    Java设计模式是面向对象编程中的重要概念,它们是软件开发中经过验证的、解决常见问题的最佳实践。在这些模式中,单例模式是最为广泛使用的一种。单例模式确保一个类只有一个实例,并提供一个全局访问点,使得在整个...

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂

    这种模式在Java编程中应用极为广泛,例如,用于管理数据库连接池,日志服务等场景。要实现一个线程安全的单例类,在Java中有多种技术手段,包括私有构造器、静态工厂方法以及双重检查锁定等。这些方法都是为了保证在...

    java设计模式----单例模式

    在Java编程语言中,设计模式是一种经过验证的解决常见软件设计问题的最佳实践。单例模式是其中最常用的一种,它的核心思想是确保一个类只有一个实例,并提供全局访问点。单例模式的应用场景包括:控制资源的访问、...

    设计模式之单例模式源码demo

    单例模式是软件设计模式中的经典模式之一,其主要目的是控制类的实例化过程,确保在应用程序的整个生命周期中,某个类只有一个实例存在。这样的设计通常适用于那些需要频繁创建和销毁,但资源消耗较大的对象,如...

    JAVA设计模式之单例模式

    单例模式是软件设计模式中的一种经典模式,它在Java编程中被广泛使用,尤其是在需要控制实例化过程,或者确保某类只有一个实例时。本文将深入探讨Java中的单例模式,帮助你理解其原理和应用。 单例模式的核心思想是...

    java,android常用设计模式,单例,mvp

    本人深圳安卓开发程序猿一枚,希望能一起...最近重温了一下java的设计模式,练练手,java设计模式有23种,写了12种常用的设计模式,一些觉得用不上就没写,水平有限,有问题欢迎留言一起加油email:674928145@qq.com!

    设计模式——单例模式

    单例模式是设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。这种模式常用于控制共享资源,如数据库连接池、线程池或者日志系统等,确保这些资源在整个应用程序中只被创建一次。 单例模式的核心...

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂 第二部分

    在编程领域,设计模式是一种被广泛接受的解决常见问题的模板或最佳实践。Java作为一款广泛应用的面向对象的编程语言,其设计模式的应用对于编写可维护、可扩展和高效的代码至关重要。本篇将深入探讨标题中提及的几种...

    java单例模式实例

    单例模式是软件设计模式中的一种经典模式,用于确保一个类只有一个实例,并提供一个全局访问点。在Java中,有多种实现单例模式的方法,每种都有其特点和适用场景。接下来,我们将深入探讨这些实现方式。 首先,我们...

    设计模式之单例模式

    单例模式是软件设计模式中的一种基础模式,它在Java编程中被广泛应用。单例模式的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式可以有效地控制资源的使用,限制实例的数量,提高性能,尤其是在...

    JAVA的23种设计模式PPT讲解

    通过学习这23种设计模式,开发者可以更好地理解如何在Java程序中应用面向对象原则,如开闭原则、里氏替换原则、依赖倒置原则等。这不仅可以提高代码的质量,还能提升团队间的沟通效率,因为设计模式是整个软件开发...

    Java实现多种单例模式

    在Java编程中,单例模式是一种常用的软件设计模式,它保证一个类只有一个实例,并提供一个全局访问点。这种模式在需要频繁创建和销毁对象的场景中尤其有用,因为它可以节省系统资源并确保对象间的协调一致。以下是...

    java23种设计模式详解+源码(绝对详解)

    在Java编程中,有23种经典的GoF(Gang of Four)设计模式,它们被分为三大类:创建型、结构型和行为型。本资源集合了这些模式的详细解释与源码分析,旨在帮助开发者深入理解和应用设计模式。 1. 创建型模式...

Global site tag (gtag.js) - Google Analytics