《《设计模式04》-单件》由会员分享,可在线阅读,更多相关《《设计模式04》-单件(7页珍藏版)》请在金锄头文库上搜索。
1、创建型设计模式3.单件/单例模式单件/单例模式意图v确保一个类仅有一个实例v能够从外部访问它v使用全局变量的不足C+例-单件模式Class Singleton public: static Singleton * Instance( );private: Singleton() Singleton(const Singleton&);/无实现 Singleton& operator=(const Singleton&); /无实现private: static Singleton * instance;;实现方式-延迟式(lazy)Singleton * Singleton:instance
2、= 0;Singleton * Singleton:Instance( ) if ( instance = 0) instance = new instance; return instance;实现方式-饥饿式(Java例)public class Singleton private static final Singleton instance = new Singleton; private Singleton() public static Signleton getInstance() return instance; 实现方式-注册式(Java例)public class Sing
3、leton static private HashMap reg = new HashMap( ); static reg.put(“MyClassName”,new Singleton); protected Singleton() public static Signleton getInstance(String name) if (name = null ) name = “DefaultClassName”; if (reg.get(name)= null) reg.put(Class.forName(name).newInstance(); return (Singleton)(reg.get(name); 单件模式v单件类的子类v例-学校单件例-VB中Screen、Cursor例-Java中Runtime日志MVC中的Control部分