`
kang
  • 浏览: 465889 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

创建模式之单例模式Singleton

 
阅读更多

<!----><!---->

单例模式Singleton的适用场合:一个类Class只要一个实例存在


公共操作,比如连接数据库、创建目录、创建文件等等。

 

 

 

 

1.没有使用单例模式:

 

<!---->

package com.javaeye.kang.singleton;

 

/**

  * 没有使用 例模式

  * 两次 new FileOpen(); 用了两次构造函数

  * 假如使用 FileOpen fo2 = fo1; 又会 求程序 使用 1000 行代 前定 fo1

  */

 

class FileOpen {

     

      public FileOpen() {

            System. out .println( " 构造函数 " );

      }

     

      public void createFile() {

            System. out .println( " 建文件 " );

      }

}

 

public class SingletonTest {

 

      public static void main(String[] args) {

            FileOpen fo1 = new FileOpen();

            fo1.createFile();

            //1000 行代

            FileOpen fo2 = new FileOpen();

            fo2.createFile();

      }

}

 

/* 当前 测试结

构造函

建文

构造函

建文

*/

 

 

2.使用单例模式1:

 

/**

  * 使用 例模式 1

  *

  */

 

class FileOpen {

     

        public static FileOpen fo = new FileOpen();

     

      // 外界提供本 自己 new

      public static FileOpen getInstance() {

            return fo ;

      }

     

// 将构造函数 置成私有的,不 外界直接 new 象,只能使用我 外提供的

      private FileOpen() {

            System. out .println ( " 构造函数 " );

      }

     

      public void createFile() {

            System. out .println ( " 建文件 " );

      }

}

 

public class SingletonTest {

 

      public static void main(String[] args) {

   // 直接使用 FileOpen 自己 外提供的 象,不再需要再人 地去 new

            FileOpen fo1 = FileOpen.getInstance ();

            fo1.createFile();

            //1000 行代

            FileOpen fo2 = FileOpen.getInstance ();

            fo2.createFile();

      }

}

 

/* 当前 测试结 果:

构造函数

建文件

建文件

*/

 

 

3.使用单例模式2:

 

/**

  * 使用 例模式 2

  * 于多 线 程,不太安全

  * 加同 来保 证线 程安全

  */

 

class FileOpen {

     

      public static FileOpen fo = null ;

     

      // 外界提供本 自己 new

      // 使用 synchronized 来保 证线 程安全

      public static synchronized FileOpen getInstance() {

            if ( fo == null ) {

                  fo = new FileOpen();

            }

            return fo ;

      }

     

// 将构造函数 置成私有的,不 外界直接 new 象,只能使用我 外提供的

      private FileOpen() {

            System. out .println( " 构造函数 " );

      }

     

      public void createFile() {

            System. out .println( " 建文件 " );

      }

}

 

 

<!----><!----> <!---->

public class SingletonTest {

 

 

<!----><!----> <!---->

      public static void main(String[] args) {

   // 直接使用 FileOpen 自己 外提供的 象,不再需要再人 地去 new

            FileOpen fo1 = FileOpen.getInstance ();

            fo1.createFile();

            //1000 行代

            FileOpen fo2 = FileOpen.getInstance ();

            fo2.createFile();

      }

}

 

/* 当前 测试结

构造函

建文

建文

*/
  • 描述: 单例模式
  • 大小: 105.4 KB
  • 描述: 单例模式要点
  • 大小: 99.9 KB
  • 描述: 单例模式小结
  • 大小: 101.9 KB
分享到:
评论

相关推荐

    Qt qml Singleton 单例模式

    此示例展示了Qml 的单例模式(类似全局对象,只生成一次实例,可全局使用) surfsky.cnblogs.com

    创建型模式之单例模式(Singleton Pattern)

    4、单例模式(Singleton Pattern) 用意:仅允许生成一个对象时

    Singleton(单例模式)

    在Java应用中,单例对象能保证在一个...3、有些像交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了,只有使用单例模式,才能保证核心交易服务器独立控制整个流程。 CSDN代码的详细解释。

    singleton单例模式1

    "singleton单例模式1" 单例设计模式是软件设计模式中的一种,目的是确保某个类只能有一个实例,并提供一个全局的访问点来访问这个实例。 首先,单例模式的要点是:① 某个类只能有一个实例。构造器私有化。② 它...

    java模式之单例模式

    java模式之单例模式: 单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。 特点: 1,一个类只能有一个实例 2,自己创建这个实例 3,整个系统都要使用这个实例 例: 在下面的对象图...

    单例模式 Singleton Pattern

    单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个...

    单例模式Singleton(java源码)

    单例模式的特点有三: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 Singleton模式包含的角色只有一个,就是Singleton。Singleton拥有一个私有构造函数,...

    singleTon单例模式的创建

    单例模式的实现,创建,一个文档作为简介

    Java设计模式-单例模式详解

    Java设计模式-单例模式详解 单例模式是 Java 设计模式中的一种常用的设计模式,旨在保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式的目的是为了保证在一个进程中,某个类有且仅有一个实例。 ...

    常见设计模式-单例模式

    单例模式是一种常见的设计模式,它的主要作用是确保在内存中仅创建一次对象,并提供一个全局访问点。单例模式有两种类型:饿汉类型和懒汉类型。 饿汉类型的单例模式是在类加载时创建对象,例如: ```java class ...

    ava常用设计模式-单例模式

    单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,有以下特点: 1. 单例类只能有一个实例。 2. 单例类必须自己创建自己的唯一实例。 3. 单例类必须给所有其他对象提供这一实例。 单例模式有多种实现...

     单例设计模式Singleton1

    单例设计模式Singleton1是Java设计模式中的一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点。这个模式的核心知识点可以总结为三点: 1. ...

    JS 设计模式之:单例模式定义与实现方法浅析

    单例模式(Singleton)属于创建型的设计模式,它限制我们只能创建单一对象或者某个类的单一实例。 通常情况下,使用该模式是为了控制整个应用程序的状态。在日常的开发中,我们遇到的单例模式可能有:Vuex 中的 ...

    设计模式_单例模式.zip

    单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 学习demo

    PHP设计模式之单例模式定义与用法分析

    单例模式(Singleton Pattern 单件模式或单元素模式),是常见的一种设计模式,它有三个特点 1.只能有一个实例 2.必须自行创建这个实例 3.必须给其他对象提供这一实例 下面用PHP代码实现一下 &lt;?PHP /** *...

    [创建型模式] 单例模式(Singleton Pattern)

    一个类可以创建多个对象,这是面向对象的语言特性,想要实现单例模式,就要屏蔽这个特性,防止系统可以随意创建类的对象。 要做到这一点,通常做法就是利用private关键字将类的构造方法私有化,使外部调用者无法利用...

    c#单例模式(Singleton)的6种实现

    1.1.1 摘要 ...单例模式(Singleton)是几个创建模式中最对立的一个,它的主要特点不是根据用户程序调用生成一个新的实例,而是控制某个类型的实例唯一性,通过上图我们知道它包含的角色只有一个,

    Python 程序语言设计模式思路-创建型模式:单例模式,确保一个类的唯一实例(装饰器)面向对象编程、继承

    单例模式(Singleton Pattern)作为创建型模式中的一种,旨在确保一个类在系统中只有一个实例,并提供全局访问点。

    设计模式单例模式PPT学习教案.pptx

    设计模式单例模式学习教案 单例模式概述 单例模式是设计模式中的一种,用于确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。这种模式对对象的创建和访问进行了限制,以确保系统中只有一个实例...

    常见设计模式—单例模式(Singleton)

    单例模式(Singleton Pattern)是设计模式中最简单的模式之一,属于创建型模式。这种设计模式主要是类的对象只有一个实例,不需要每次new 创造。而我们要做的的就是确保这个对象创建的唯一。然后根据一些特征进行...

Global site tag (gtag.js) - Google Analytics