提起设计模式,确实有不少著作讨论它,<<设计模式>>一书理论化很强,我这里干脆整理出一些用代码来体现的实例来说明。
第一个就是Singleton模式,意指始终保证只创建或得到一个唯一的实例。
其代码如下:
提起设计模式,确实有不少著作讨论它,<<设计模式>>一书理论化很强,我这里干脆整理出一些用代码来体现的实例来说明。
第一个就是Singleton模式,意指始终保证只创建或得到一个唯一的实例。
其代码如下:
package com.sql9.created;
/**
* @author iihero
*/
class SafeSingleton
{
public static class Holder
{
private static SafeSingleton instance = new SafeSingleton();
}
private SafeSingleton()
{
System.out.println("SafeSingleton initialized here....");
}
public static SafeSingleton getInstance()
{
return Holder.instance;
}
}
public class Singleton
{
private static Singleton _instance;
private Singleton()
{
}
public static Singleton getInstance()
{
synchronized(Singleton.class)
{
if (_instance == null)
{
_instance = new Singleton();
}
return _instance;
}
}
public static void main(String[] args)
{
System.out.println(Singleton.getInstance());
System.out.println(Singleton.getInstance());
System.out.println(SafeSingleton.getInstance());
System.out.println(SafeSingleton.getInstance());
}
}
结果如下:
com.sql9.created.Singleton@c17164
com.sql9.created.Singleton@c17164
SafeSingleton initialized here....
com.sql9.created.SafeSingleton@14318bb
com.sql9.created.SafeSingleton@14318bb
总结:
这里SafeSingleton采取了lazy initialized方式来初始化,只有第一次调用时才会初始化Singleton这个实例。比Singleton类的实现要好一些。不加synchronized()的Singleton在多线程环境下,则会出现问题,可能出现同时初始化的情况。
<script type="text/javascript"><!--
google_ad_client = "ca-pub-7104628658411459";
/* wide1 */
google_ad_slot = "8564482570";
google_ad_width = 728;
google_ad_height = 90;
//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
分享到:
相关推荐
C#面向对象设计模式纵横谈 第二课 Singleton 单件(创建型模式)
从意图等几个方面较为详细的介绍设计模式中的创建型模式
李建忠面向对象设计模式视频精讲:Singleton 单件(创建型模式)
1 创建型模式 1.1 Factory模式 1.2 AbstactFactory模式 1.3 Singleton模式 1.4 Builder模式 1.5 Prototype模式 2 结构型模式 2.1 Bridge模式 2.2 Adapter模式 2.3 Decorator模式 2.4 Composite模式 2.5 ...
C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式)
C#视频-面向对象设计模式纵横谈(2):Singleton 单件(创建型模式)
设计模式总结-模板设计模式,单例模式(singleTon)
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第2节:创建型模式Singleton单件模式
C#面向对象设计模式纵横谈(2)Singleton 单件(创建型模式)
3.5 Singleton(单件)—对象创建型模式 84 3.6 创建型模式的讨论 89 第 4 章 结构型模式 91 4.1 Adapter(适配器)—类对象结构型模式 92 4.2 Bridge(桥接)—对象结构型模式 100 4.3 Composite(组成)—对象结构...
1 创建型模式...................................................................................................................................5 1.1 Factory模式 ..........................................
NULL 博文链接:https://jacky-dai.iteye.com/blog/1927936
Head First 设计模式 (五) 单件模式(Singleton pattern) C++实现
设计模式-Singleton与Factory
23种设计模式之三(创建型模式)Singleton模式
C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式) (Level 300)
工厂模式、抽象工厂模式、Singleton模式等等23种设计模式……欢迎大家下载阅读!
3.5 SINGLETON(单件)——对象创建型模式 第四章 结构型模式 4.1 ADAPTER(适配器)——对象结构型模式 4.2 BRIDGE(桥接)——对象结构型模式 4.3 COMPOSITE(组成)——对象结构型模式 4.4 DECORATOR(装饰)——...
NULL 博文链接:https://linxingliang.iteye.com/blog/1217811