《设计模式之禅》--工厂方法扩展:实现单例
2023-09-14 09:00:41 时间
需求:使用工厂方法模式实现单例模式
public class Singleton { //不允许通过new产生一个对象 private Singleton() { } public void doSomething() { //业务处理 } }
利用反射创建单例对象
public class SingletonFactory { private static Singleton singleton; static { try { Class cl = Class.forName(Singleton.class.getName()); //获得无参构造 Constructor constructor = cl.getDeclaredConstructor(); //设置无参构造是可访问的 constructor.setAccessible(true); //产生一个实例对象 singleton = (Singleton) constructor.newInstance(); } catch (Exception e) { //异常处理 } } public static Singleton getSingleton() { return singleton; } }
还可以扩展单例构造器
相关文章
- Kali Linux三种网络攻击方法总结(DDoS、CC和ARP欺骗)
- 【说站】php安装扩展的几种方法
- Windows7 的 PAE (物理扩展内存)开启与关闭方法
- Python_字符串常用函数和方法(1)_Python自学第十三节
- 软件测试|Dubbo 接口测试原理及多种方法
- PHP ImageMagick扩展有哪些函数?PHP ImageMagick扩展的使用方法
- 【Groovy】Groovy 扩展方法 ( 静态扩展方法配置 | 扩展方法示例 | 编译静态扩展类 | 打包静态扩展类字节码到 jar 包中 | 测试使用 Thread 静态扩展类 )
- PS 减淡/加深/海绵工具的使用方法
- 1G以下小内存(512M或更小)使用swap方法安装fileinfo扩展
- python发送各类邮件的主要方法详解编程语言
- Linux查询开放端口的实现方法(linux查询开放端口)
- MySQL扩充数据库空间的实现方法(mysql扩展表空间)
- 探索Linux下查看本机IP地址的方法(linux查看本机地址)
- 「深入解析Oracle日志文件的方法和技巧」(oracle日志文件分析)
- MySQL: 列出所有表的简易方法(mysql列出所有表)
- MySQL一表左关联的使用方法及注意事项(mysql一表左关联)
- 学习MySQL两种查询方法(mysql两种方法)
- Oracle交换页提升系统效率的一种有效方法(oracle交换页)
- Oracle中查看库中表的方法(oracle中查看库中表)
- 扩展String功能方法
- 惊现学习CSS应该注意的方法
- 扩展jQuery键盘事件的几个基本方法
- 如何让32位的WIN2003服务器使用4G以上内存的方法
- linux下为php添加curl扩展的方法
- win2003关闭不需要的数据库服务禁止不用的web服务扩展的方法图文
- Linux下为PHP添加扩展库的方法
- MYSQL插入处理重复键值的几种方法
- jquery聚焦文本框与扩展文本框聚焦方法
- jQuery布局插件UILayout简介及使用方法
- MFC扩展DLL中导出类和对话框的实现方法
- Windows服务器应对高并发和DDOS攻击的配置方法