`
STAR_JAVA
  • 浏览: 2166 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

设计模式学习笔记-单例模式

阅读更多

设计模式学习笔记-单例模式

在网上学习了一段时间,总结了经典的2种单例模式的java写法

写法1:

 

package org.star_java.designpattern;

public class Singleton1
{
	//volatile保证每次取instance都从主内存读取
	private volatile static Singleton1 instance = null;
	
	//保证无法new出这个类
	private Singleton1()
	{super();}

	public static Singleton1 getInstance()
	{
		if (instance == null)//DCL 双锁检测
		{
			synchronized (Singleton1.class)//线程安全
			{
				if (instance == null)//保证单例
				{
					instance = new Singleton1();
				}
			}
		}
		return instance;
	}
}

 

写法2:

 

package org.star_java.designpattern;

public class Singleton2
{
	//保证无法new出这个类
	private Singleton2()
	{super();}
	
	//由JVM保重线程安全以及类的初始化和单例
	private static class SingletonHolder
	{
		static final Singleton2 Instance = new Singleton2();
	}
	
	public static Singleton2 getInstance()
	{
		return SingletonHolder.Instance;
	}
}

注意事项:

1.单例模式一定要有一个private的构造器,防止new类

2.单例模式最好不要实现Cloneable,Serializable这样的接口,防止从这些途径生成类

3.单例模式要防止通过反射的setAccessible方法来突破private够着函数的限制,但是这些一般不需要自己处理,由应用服务器后台保证

分享到:
评论

相关推荐

    《C++20设计模式》学习笔记-第5章单例模式

    《C++20设计模式》学习笔记-第5章单例模式

    最新设计模式超级详解+Tomcat架构源码分析+Spring源码分析 资深级设计模型课程

    Spring源码分析,web源码分析,Tomcat架构源码分析都是非常深入的源码级课程,期待研究设计模式和深入学习源码内功的朋友们,一定要仔细的学习研究。 (0);目录中文件数:1个 ├─3.代码.zip (1)\1.笔记;目录中文...

    设计模式学习笔记及其模式特点总结

    代理模式学习笔记、单例模式学习笔记、命令模式、原型模式、模式特点总结。 为个人对设计模式的理解,如果有理解不一致的不要砸砖啊

    尚硅谷设计模式源码笔记课件.zip

    1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、类的关联、聚合和组合) 23种设计模式包括:创建型模式:单例模式(8种...

    PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式

    设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

    C#设计模式–单例模式

     近在学设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二...

    JS设计模式笔记和代码

    JavaScript常见的一些设计模式学习笔记和代码实现。包括工厂模式、单例模式、代理模式、发布订阅模式、中介者模式等等内容。

    Java设计模式教程

    该资料介绍Java各类开发模式,包含以下教程:《深入浅出设计模式(中文版)》《Java单例模式》《Java设计模式-图解-附代码》《JAVA设计模式之单例模式(完整版)》《Java学习笔记(必看经典)》《Java总复习》《单例模式》...

    Java学习笔记-个人整理的

    {14.2}XML的设计}{205}{section.14.2} {14.3}DTD/Schema}{205}{section.14.3} {14.3.1}SAX应用}{206}{subsection.14.3.1} {14.4}dom4j}{207}{section.14.4} {14.5}XPath}{210}{section.14.5} {14.6}apache....

    【Java设计模式】你对单例模式了解多少,一文深入探究

    我是清风~,每天学习一点点,快乐成长多一点,这些都是我的日常笔记以及总结。 目录单例模式懒汉式单例模式未初始化问题解决Double Check 双重检查方案一:不让第二步和第三步重排序-DoubleCheck方案二:基于类初始...

    PHP设计模式大全 学习笔记

    在PHP学习中,收集了一些常用的编程方法和思想,集中详细的记录了9种设计模式的设计思路和用法。比如:工厂模式,单例模式,注册模式,适配器模式,观察者模式等

    设计模式笔记(包含所有设计模式)个人总结提炼笔记

    1. 创建型模式:创建型模式关注对象的创建过程,包括简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式和单例模式。这些模式可以帮助我们更灵活地创建对象,避免直接使用new关键字来创建对象,降低...

    23中设计模式—–单例模式

    今天听完狂神说java的单例模式,感慨万分。希望通过这篇文章跟大家一起学习。 1. 饿汉式 [1] 一个私有的构造器 [2] 一个静态变量 [3] 一个静态方法返回对象 饿汉式单例是直接使用静态变量的方式生成这个单例对象...

    《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析

    本文实例讲述了Javascript面向对象程序设计单例模式原理与实现方法。分享给大家供大家参考,具体如下: 1.单例模式概述 源自百度百科对于单例模式的定义: 单例模式的意思就是只有一个实例。单例模式确保某一个类...

    PHP 面向对象程序设计(oop)学习笔记(三) – 单例模式和工厂模式

    毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。单例模式 当需要保证某个对象只能有一个实例的时候,单例模式非常有用。它把...

    Java中线程同步和线程协作学习笔记

    java核心技术-多线程的概念及多线程单例设计模式的应用-懒汉模式、饿汉模式、优化懒汉

    AInter DesignMode

    最近在设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二...

    Java中的design-patterns::open_book:使用通俗易懂的案例,类图,以及配套学习笔记来详解Java的二十种设计模式!

    配套博客学习笔记: ://yubuntu0109.github.io/tags/design-and-pattern/ 参考书籍(推荐): 《Java设计模式 - 刘伟》 , 《图解设计模式 - [日]结城浩》 创建型模式 :check_mark:简单工厂模式( Simple Factor ...

    PHP常用的三种设计模式汇总

    本篇文章是学习PHP中常用的三种设计模式的笔记及总结,不管采用哪一门语言开发什么,几乎都会使用到设计模式,我们为什么需要设计模式呢?它的诞生对于我们开发人员来说有什么样的作用与意义呢? 相信做iOS开发的...

Global site tag (gtag.js) - Google Analytics