单例设计模式 (代码实现)

  ---单例设计模式之饿汉式---

  创建SingleInstance类

 1 /**
 2  * 单例设计模式之饿汉式
 3  */
 4 public class SingleInstance {
 5     /**
 6      * 私有化构造方法
 7      */
 8     private SingleInstance() {}
 9     /**
10      * 成员变量
11      */
12     private static SingleInstance instance = new SingleInstance() ;
13     /**
14      * 提供一个静态的成员方法,返回该对象
15      */
16     public static SingleInstance getInstance() {
17         return instance ;
18     }
19 }

  创建测试类SingleInstanceDemo

 1 /**
 2  * 单例设计模式的思想:    保证该类在内存中只有一个实例(对象)
 3  * 优点节省内存,提高内存利用率
 4  */
 5 public class SingleInstanceDemo {
 6
 7     public static void main(String[] args) {
 8
 9         // 调用方法获取对象
10         SingleInstance instance1 = SingleInstance.getInstance() ;
11         SingleInstance instance2 = SingleInstance.getInstance() ;
12
13         // 输出
14         System.out.println(instance1 == instance2);
15     }
16 }

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

  ---单例设计模式之懒汉式---

  创建SingleInstance2类

 1 /**
 2  * 单例设计模式之懒汉式
 3  *
 4  * 面试中写那种单例设计模式呢?
 5  *         面试中写懒汉式:    因为懒汉式体现了两种思想, 第一种线程问题 , 第二种 延迟加载
 6  *
 7  *    开发中写饿汉式
 8  */
 9 public class SingleInstance2 {
10     /**
11      * 私有化构造方法
12      */
13     private SingleInstance2() {}
14     /**
15      * 提供一个成员变量
16      */
17     private static SingleInstance2 instance = null ;
18     /**
19      * 提供一个静态的成员方法
20      */
21     public static synchronized SingleInstance2 getInstance() {
22
23         if(instance == null){
24             instance = new SingleInstance2() ;
25         }
26         return instance ;
27     }
28 }

  创建测试类SingleInstanceDemo2

 1 public class SingleInstance2Demo {
 2
 3     public static void main(String[] args) {
 4
 5         // 获取对象
 6         SingleInstance2 instance1 = SingleInstance2.getInstance() ;
 7         SingleInstance2 instance2 = SingleInstance2.getInstance() ;
 8
 9         // 比较
10         System.out.println(instance1 == instance2);
11
12     }
13
14 }
时间: 2024-10-13 01:04:35

单例设计模式 (代码实现)的相关文章

单例设计模式代码实现

# pcjclass Musicplay(object): id=None def __new__(cls, *args, **kwargs): if cls.id is None: cls.id=super().__new__(cls) #new是一个静态方法.所以要传cls参数 return cls.id def __init__(self): print("音乐初始化中........") music1=Musicplay()music2=Musicplay()print(mus

IOS开发之单例设计模式

本文将从四个方面对IOS开发中的单例设计模式进行讲解: 一.什么是单例设计模式 二.我们为什么要用单例设计模式 三.单例设计模式的基本用法 四.自定义单例设计模式代码的封装 一.什么是单例设计模式 所谓单例,即是单个的实例化对象,保证一个类有且仅有一个实例.通常情况下,当我们对一个类实例化时(如:alloc.new等),并不能保证每次实例化的对象是唯一的实例.那么为了保证该类可在多次实例化的过程中保证内存地址不变,就需要引入单例设计模式. 二.我们为什么要用单例设计模式 1.Singleton

单例设计模式之饿汉式(静态代码块)

package com.waibizi.demo02; /** * 单例设计模式之饿汉式(静态代码块) * 这种方式与饿汉式静态常量的方式是类似的,类装载的时候也有直接创建对象 * @author 歪鼻子 * */ @SuppressWarnings("all") public class Singleton_Pattern { public static void main(String[] args) { // TODO Auto-generated method stub } }

单例设计模式

一:单例设计模式的定义 单例设计模式,顾名思义,就是在整个程序运行过程中,只向外界提供一个对象,这样做可以避免资源的浪费,例如 我们打开回收站或者ppt时,只会启动一个窗口. 单例模式的java实现: 1:饿汉式 1 /** 2 * 3 */ 4 package com.hlcui.singleton; 5 6 /** 7 * @author Administrator 饿汉式单例类 8 */ 9 public class SingletonDemo { 10 // 1:内部创建一个对象 11

iOS 中的单例设计模式

单例设计模式:在它的核心结构中只包含一个被称为单例类的特殊类.例如文件管理中的NSUserDefault,应用程序中的UIApplication,整个应用程序就这一个单例类,负责应用程序的一些操作,单例在那个文件下都能取得到. 通过单例设计模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节省系统资源.如果希望在系统中某个类的对象只能存在一个,单例模式是最好的选择. 下面来点实在的,创建单例代码上 方法1:基于线程安全创建一个单例 .h做一下声明 + (id)

设计模式之单例设计模式

一.何为单例设计模式 单例模式,顾名思义就是单个实例,程序中某个类只有一个实例存在.通常实在需要共享某个资源避免资源损耗的情况下使用到的. 二.单例设计模式的代码实现 一说到单例模式的概念,我们首先会想到下面的这种的写法 public class SingleInstance { private static SingleInstance singleInstance; /** * 单例模式 * @return */ public static SingleInstance getSingleI

设计模式整理_单例设计模式

单例设计模式,它确保一个类只有一个实例,并提供一个全局访问点. 由于单例设计模式对应的类只能创建一个对象,因此它所对应的方法必须是static(不是static只有创建对象才能调用). 以下是单例模式的一个经典实现:采用了延迟加载对象的例子. public class Single1 { private static Single1 single; //利用一个静态变量来记录Single1的唯一实例,这里没有直接声明,采用了延迟加载模式. private Single1(){} //把构造器声明

【学习笔记】单例设计模式笔记

单例设计模式是常见的设计模式之一.通过单例实现所需求类在系统中只存在唯一一个实例. 单例设计模式分两种:懒汉单例设计模式和饿汉单例设计模式,两者设计思路一致,实现有微小不同. 实现代码: 1 public class HungryMan { 2 3 private HungryMan(){};//私有的构造方法保证HungryMan类无法在外部使用构造方法实例化 4 private static final HungryMan hungryMan=new HungryMan();//在类内定义一

Java——单例设计模式

设计模式:解决某一类问题最行之有效的方法.Java中23种设计模式:单例设计模式:解决一个类在内存中只存在一个对象. 想要保证对象唯一.1,为了避免其他程序过多建立该类对象.先禁止其他程序建立该类对象2,还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象.3,为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式 这三部怎么用代码体现呢?1,将构造函数私有化.2,在类中创建一个本类对象.3,提供一个方法可以获取到该类对象. 对于事物该怎么描述,还怎么描述.当需要将该事物的对象