设计模式:Registry of Singleton模式
来源:互联网 发布:永磁同步电机控制算法 编辑:程序博客网 时间:2024/05/17 23:39
原文地址:http://leihuang.org/2014/12/05/registry-of-singleton/
Creational 模式
物件的产生需要消耗系统资源,所以如何有效率的产生、管理 与操作物件,一直都是值得讨论的课题, Creational 模式即与物件的建立相关,在这个分类下的模式给出了一些指导原则及设计的方向。下面列举到的全属于Creational 模式
- Simple Factory 模式
- Abstract Factory 模式
- Builder 模式
- Factory Method 模式
- Prototype 模式
- Singleton 模式
- Registry of Singleton 模式
上一篇博客中我们讲了单例模式,我们注意到其构造方法全部声明为private访问权限,也就意味着它不能有子类,不能有其它类继承getInstance()方法,那么这样会导致什么问题呢?
假如我们要通过singleton类根据不同的情况,得到不同的实例,代码如下
public class Singleton { private static Singleton instance = null; private Singleton() { } public static Singleton getInstance(String name) { if (instance == null) { if (name.equals("child1")) instance = new ChildSingleton1(); else if (name.equals("child2r")) instance = new ChildSingleton2(); else instance = new Singleton(); } return instance; }}
也就是说,每当我们需要利用到单例模式的时候,我们都需要修改一次我们的单例类,这显然违背了面向对象的设计思想,此时我们就可以利用java中的反射来实现,这一需求.
public class Singleton { private static Singleton instance = null; private Singleton() { } public static Singleton getInstance(String name) { if (instance == null) { try { instance = (Singleton)Class.forName(name).newInstance(); } catch(Exception e) { e.printStackTrace(); } } return instance; }}
当然有些语言是没有反射的性质的,那么就需要用到,继承了.这里不细讲.
2014-12-05 21:31:31
Brave,Happy,Thanksgiving !
0 0
- 设计模式:Registry of Singleton模式
- Registry of Singleton 模式
- Design Pattern: Registry of Singleton 模式
- 设计模式案例--单例模式--登记式单例模式(registry singleton)
- 设计模式-----Singleton模式
- 设计模式-Singleton模式
- 设计模式--Singleton模式
- 设计模式-------Singleton模式
- 设计模式--singleton模式
- 设计模式--Singleton模式
- 【设计模式】--SINGLETON模式
- 探究 Singleton 设计模式
- 探究Singleton设计模式
- 设计模式之singleton
- 设计模式之Singleton
- [设计模式]Singleton
- 设计模式之singleton
- 设计模式之 Singleton
- 脚本入门(封装.继承。)
- ORACEL_EBS_采购到入库所经历的表
- 关于协方差矩阵的理解
- 脚本入门(继承 多态 索引器)
- 计算机组装与维护试题及答案
- 设计模式:Registry of Singleton模式
- kde 桌面 eclipse崩溃
- cocos2dx常用功能-Cocos2dx开发常用控件详解(共11部分)
- LayoutInflater和inflate()方法的用法
- poj2485 prime算法+距离表
- 《数据结构》 第四章 字符串和多维数组 知识总结导图
- NSThread 使用
- JavaFX高级教程:JavaFX2.0的FXML语言
- jQuery Mobile学习笔记(二)——框架起步