读书人

设计形式_单例模式_Singleton Pattern

发布时间: 2012-09-11 10:49:04 作者: rapoo

设计模式_单例模式_Singleton Pattern

SINGLETON

单例模式 :?
(1) Eager 饿汉模式 : 仅适用于 Java? ;?

设计形式_单例模式_Singleton Pattern

设计形式_单例模式_Singleton Pattern设计形式_单例模式_Singleton Patternpublic?class?EagerSingleton?设计形式_单例模式_Singleton Pattern{
设计形式_单例模式_Singleton Pattern????//类被加载时,静态变量就被初始化
设计形式_单例模式_Singleton Pattern????private?static?EagerSingleton?ourInstance?=?new?EagerSingleton();
设计形式_单例模式_Singleton Pattern
设计形式_单例模式_Singleton Pattern设计形式_单例模式_Singleton Pattern????/**?*//**
设计形式_单例模式_Singleton Pattern?????*?外界只能通过此方法获得自身的实例
设计形式_单例模式_Singleton Pattern?????*?@return?SingletonDemo
设计形式_单例模式_Singleton Pattern?????*/
设计形式_单例模式_Singleton Pattern设计形式_单例模式_Singleton Pattern????public?static?EagerSingleton?getInstance()?设计形式_单例模式_Singleton Pattern{
设计形式_单例模式_Singleton Pattern????????return?ourInstance;
设计形式_单例模式_Singleton Pattern????}
设计形式_单例模式_Singleton Pattern
设计形式_单例模式_Singleton Pattern设计形式_单例模式_Singleton Pattern????/**?*//**
设计形式_单例模式_Singleton Pattern?????*?构造函数对外不可见
设计形式_单例模式_Singleton Pattern?????*?单例模式最显著的特点
设计形式_单例模式_Singleton Pattern?????*/
设计形式_单例模式_Singleton Pattern设计形式_单例模式_Singleton Pattern????private?EagerSingleton()?设计形式_单例模式_Singleton Pattern{
设计形式_单例模式_Singleton Pattern????}
设计形式_单例模式_Singleton Pattern}



(2) Lazy 懒汉模式 : 适用于Java,C++ (因为static 代码块的执行顺序c++不固定,java是固定的,在构造方法之前)

设计形式_单例模式_Singleton Pattern

设计形式_单例模式_Singleton Pattern设计形式_单例模式_Singleton Patternpublic?class?LazySingleton?设计形式_单例模式_Singleton Pattern{
设计形式_单例模式_Singleton Pattern????//类被加载时,静态变量不会被初始化
设计形式_单例模式_Singleton Pattern????private?static?LazySingleton?lazySingleton?=?null;
设计形式_单例模式_Singleton Pattern
设计形式_单例模式_Singleton Pattern设计形式_单例模式_Singleton Pattern????/**?*//**
设计形式_单例模式_Singleton Pattern?????*?默认构造函数?是?private
设计形式_单例模式_Singleton Pattern?????*?防止外界调用,同时此类也不能被继承
设计形式_单例模式_Singleton Pattern?????*/
设计形式_单例模式_Singleton Pattern设计形式_单例模式_Singleton Pattern????private?LazySingleton()设计形式_单例模式_Singleton Pattern{
设计形式_单例模式_Singleton Pattern
设计形式_单例模式_Singleton Pattern????}
设计形式_单例模式_Singleton Pattern
设计形式_单例模式_Singleton Pattern设计形式_单例模式_Singleton Pattern????/**?*//**
设计形式_单例模式_Singleton Pattern?????*?synchronized?:同步化
设计形式_单例模式_Singleton Pattern?????*?@return
设计形式_单例模式_Singleton Pattern?????*/
设计形式_单例模式_Singleton Pattern设计形式_单例模式_Singleton Pattern????synchronized?public?static?LazySingleton?getInstance()设计形式_单例模式_Singleton Pattern{
设计形式_单例模式_Singleton Pattern设计形式_单例模式_Singleton Pattern????????if(lazySingleton?==?null)设计形式_单例模式_Singleton Pattern{
设计形式_单例模式_Singleton Pattern????????????lazySingleton?=?new?LazySingleton();
设计形式_单例模式_Singleton Pattern????????}
设计形式_单例模式_Singleton Pattern????????return?lazySingleton;
设计形式_单例模式_Singleton Pattern????}
设计形式_单例模式_Singleton Pattern}

?

读书人网 >软件开发

热点推荐