单例设计模式

package test;

/*

单例设计模式特点

1.类不能实例化 构造方法私有化

2.类中先实例化一个对象

3.提供一个返回类对象的方法 getInstance

*/

public class Singleton {

     public static void main(String[] args) {
          // TODO Auto-generated method stub\
          Single si=Single.getInstance();
          si.say();
         
          System.out.println("------------------------");
          Single1 si2=Single1.getInstance();
          si2.say();

     }

}

/*
* 饿汉式单例设计模式
*/

class Single{
     //先实例化一个对象
     private static Single s=new Single();
    
     private Single(){
         
     }
    
     public void say(){
          System.out.println("这是一个单例饿汉式设计模式");
     }
    
     public static Single getInstance(){
          return s;
     }
}

/*
* 懒汉式单例设计方法
*/

class Single1{
     //先实例化一个对象
     private static Single1 s=null;
    
     private Single1(){
         
     }
    
     public void say(){
         
          System.out.println("这是一个单例懒汉式设计模式");
     }
    
     public static Single1 getInstance(){
        if(s==null){
               s=new Single1();
          }
          return s;
     }
}

时间: 2024-12-31 08:55:18

单例设计模式的相关文章

(单例设计模式中)懒汉式与饿汉式在多线程中的不同

/*  目的:分析一下单例设计模式中,懒汉式与饿汉式在多线程中的不同!  开发时我们一般选择饿汉式,因为它简单明了,多线程中不会出现安全问题!  而饿汉式需要我们自己处理程序中存在的安全隐患,但是饿汉式的程序技术含量更高! */ /* class SinglePerson implements Runnable{    private static SinglePerson ss = new SinglePerson("hjz", 22);//恶汉式    private int ag

浅谈Java编程中的单例设计模式_java

写软件的时候经常需要用到打印日志功能,可以帮助你调试和定位问题,项目上线后还可以帮助你分析数据.但是Java原生带有的System.out.println()方法却很少在真正的项目开发中使用,甚至像findbugs等代码检查工具还会认为使用System.out.println()是一个bug. 为什么作为Java新手神器的System.out.println(),到了真正项目开发当中会被唾弃呢?其实只要细细分析,你就会发现它的很多弊端.比如不可控制,所有的日志都会在项目上线后照常打印,从而降低运

【秒懂设计模式】单例设计模式

 秒懂设计模式--单例设计模式 (三)单例设计模式 1.先解释一下,什么是单例模式呢? 在Java中是这样定义的:"一个类有且仅有一个实例,并且自行实例化向整个系统提供." 显然从单例模式的定义中,我们可以发现它有三个要点: ①某个类只能有一个实例: ②它必须自行创建这个实例: ③它必须自行向整个系统提供这个实例. 2.要满足这三个要点,应该如何实现呢?下面让我们来逐条分析: ①如何保证某个类只能有一个实例? 让我先来想一下,一个类的对象是如何创建的呢?答案是:一个类的对象的产生是由类

浅谈JAVASE单例设计模式_java

简单的说设计模式,其实就是对问题行之有效的解决方式.其实它是一种思想. 1.单例设计模式.       解决的问题:就是可以保证一个类在内存中的对象唯一性.(单个实例)       使用单例设计模式需求:必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性.       如何保证对象唯一性?                                                      解决步骤:       1.不允许其他程序用new创建该对象.            

JAVA之旅(十四)——静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制

JAVA之旅(十四)--静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制 JAVA之旅,一路有你,加油! 一.静态同步函数的锁是class对象 我们在上节验证了同步函数的锁是this,但是对于静态同步函数,你又知道多少呢? 我们做一个这样的小实验,我们给show方法加上static关键字去修饰 private static synchronized void show() { if (tick > 0) { try { Thread

JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖

JAVA之旅(六)--单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖 java也越来越深入了,大家加油吧!咱们一步步来 一.单例设计模式 什么是设计模式? JAVA当中有23种设计模式,解决某一问题最有效的方法 单例设计模式 解决一个类在内存中只存在一个对象 想要保证对象唯一该怎么做> 1.为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象 2.还为了让其他程序访问到该类对象,只好在本类中自定义一个对象 3.为了方便其他程序对自定义对象的访问,可以对外提供

IOS 单例设计模式解读

IOS 中单例设计模式的解读与用法 一.单例的作用       顾名思义,单例,即是在整个项目中,这个类的对象只能被初始化一次.它的这种特性,可以广泛应用于某些需要全局共享的资源中,比如管理类,引擎类,也可以通过单例来实现传值.UIApplication.NSUserDefaults等都是IOS中的系统单例. 二.单例的写法        单例的写法常用的有两种方式:        方式1.不考虑线程 ? 1 2 3 4 5 6 7 8 static SingleCase *manager = 

单例设计模式 Single

一些人总结出来用来解决特定问题的固定的解决方案.   解决一个类在内存中只存在一个对象,想要保证对象的唯一. 1 为了避免其他程序过多的建立该类对象.禁止其他程序建立该类对象. 2 为了其他程序可以访问该类对象,在本类中自定义一个对象. 3 方便其他程序对自定义类的对象的访问,对外提供一些访问方式.  代码: 1将构造函数私有化 2在类中创建一个私有的本类对象 3提供一个用类名调用的公有方法获取该对象. 懒汉模式 – 通常被称为延迟加载.注意存在线程安全问题. 懒汉式的单例模式线程安全问题的解决

iOS 使用 dispatch_once 创建线程安全的单例

使用 dispatch_once 创建单例 Creating singletons using dispatch_once 无论喜欢与否,有时你确实需要使用单例.事实上,每一个 iOS 和 Mac OS 应用都至少用到了一个单例:UIApplication 或NSApplication. Love them or loathe them, sometimes you need to have a singleton. In fact every iOS and Mac OS applicatio