首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计形式_单例模式_Singleton Pattern

2012-09-11 
设计模式_单例模式_Singleton PatternSINGLETON单例模式 :?(1) Eager 饿汉模式 : 仅适用于 Java? ;?public

设计模式_单例模式_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}

?

热点排行