翻看设计模式,单例模式往往安排在前面,一般来说,前面的东西都简单,那单例简单吗?
1. 写个singleton很简单,自己拿住自己的对象,整成private的。构造函数private化,再来个static 且同步的方法getInstance,里面初始化。
看两眼书,都能写个差不多。但请注意,这里有个隐含条件,单例的范围是什么?范围不同,单例的实现与调用是不同的。
范围:
单JVM(进程)范围内,一般书上的设计与写法都是针对在一个JVM实例内的单例,也就是说,在这个JVM实例内,这个单例是有效的。
java SingleTon , 在这个启动范围内,Singleton.getInstance是有效的。再启动一个java SingleTon,就是另一个实例。
应用上下文范围,比如在spring的context内实现一个singleton,那么这个singleton的有效范围是这个context实例。
伪码: Context c1 = new Context(); c1.get(”singleton"); 范围是c1内
Context c2 = new Context(); c2.get("singleton"); 范围是c2
在设计模式中的享元模式,其实就是另一种单例实现。
J2EE容器范围,比如在j2ee容器内定义的JNDI服务。用标准的api去调用,单例有效范围是这个容器的实例。
网络服务范围,当几台设备做集群或并联成一个应用域时,在域内实现单例,那他的范围就是域,而不是单独的某台设备。
如果提供对外服务,可能就是采用restful、webservice、http等方式调用。对于调用者而言,往往不关心是否为单例。
这里只例举了一些我认识到的、使用过的单例实现,并不是简单的getInstance就能一招鲜全部搞定。
- 浏览: 52322 次
最新评论
-
lenozhi:
catmimigo 写道DefaultFtplet里不有很多时 ...
扩展 COMMON-NET和APACHE FTP SERVER命令 -
catmimigo:
DefaultFtplet里不有很多时间通知吗?
publi ...
扩展 COMMON-NET和APACHE FTP SERVER命令 -
lenozhi:
wangrui 写道客户端程序上传文件后直接发送RNTO(重命 ...
扩展 COMMON-NET和APACHE FTP SERVER命令 -
wangrui:
客户端程序上传文件后直接发送RNTO(重命名命令)
扩展 COMMON-NET和APACHE FTP SERVER命令 -
lenozhi:
iamlotus 写道lenozhi 写道iamlotus 写 ...
将HashMap文件化
相关推荐
我遇到个项目需要将16进制的数字,有可能会有字母,这样的一个string类型的字符,转换为string字符串。我在网上找了很久,在一个很深的角落找到了。我想,是时候让他重见天日了。是在不想掏这个积分,去我点我头像,...
- 单例模式:可能用于数据库连接池或全局配置的管理。 - 工厂模式:创建对象时,可能使用工厂模式来封装实例化过程。 - 代理模式:可能用于权限控制,为具体业务操作添加权限检查。 - 观察者模式:用于事件驱动...
如何正确地写出单例模式 代理模式剖析 什么是策略模式 Java8系列 Java8简明教程 Java8 Foreach Hexo搭建博客 分分钟部署一个Hexo环境 各种配置详解 开始写作吧 开发者指南 git - 简明指南 Jersey-2.x用户指南...
因为是多页面系统,使用单例组件貌似也没啥意义(不过是个机会学习学习单例组件是怎么写的)。 于是,想到使用浏览器缓存来记录是否弹过窗了(当然,得设定过期时间)。 如何写单例组件 1、工具函数: import ...
虽然在 ES6 中,已经出了 class 的语法,貌似好像不用了解 ES5 中的这些老东西了,但是越深入学习,你会发现理解这些模式的重要性。 在本文中,我会描述 7 种常用的创建自定义类型的模式:工厂模式、构造函数模式、...
用着 MTP 传文件,突然断了,此电脑里面的手机图标也不见了,拔开数据线重连,仍然无效 去设备管理器那里看,发现一个未知设备,卸载这个设备,刷新,又发现了一个带黄色...然后就发现解决办法,貌似这是windows的bug
很多集成的PHP环境(PHPnow WAMP Appserv等)自带的MySQL貌似都没有开启MySQL的严格模式,何为MySQL的严格模式,简单来说就是MySQL自身对数据进行严格的校验(格式、长度、类型等),比如一个整型字段我们写入一个字符...
# 机器人 [第十四届全国大学生智能汽车竞赛室外光电竞速创意赛,ART-Racecar ... ... ... ... [V-Rep、Open HRP、Gazebo、Webots这四种机器人仿真软件各自有何特点和优缺点?... Webots 貌似没有V-REP易用度高(仅仅是第一感觉),
【天地网络-JSP留言薄】是一个看似简单的全功能留言系统,它以其丰富的功能和易于理解的结构,为用户提供了一个高效且便捷的沟通平台。在IT领域,尤其是Web开发中,JSP(JavaServer Pages)是一种广泛使用的服务器端...
一段js代码,就可以让你的网页背景色呈现渐变模式 关键还可以自动切换,效果很不错,使用也简单 貌似不支持低版本浏览器,因为引入的jQuery是2.0版本的,不兼容低版本浏览器 使用方法: 直接将index.html中的...
下面的连接貌似也是破解文件,没试过,应该是一样的: http://download.csdn.net/source/2809846 大家可以去看看。 --------------------------------------------- 安装方法: 把两个官方原版文件都全部安装完,...
换句话说,就是当祖先已经有了,那么只要从这个祖先衍生出来的其他孩子(包括这个祖先下的其他组合对象)已经就具备了某种功能,看上去貌似又有些像是继承。“组合模式”在组合对象的层次体系中有两种类型的对象:叶...
下面的连接貌似也是破解文件,没试过,应该是一样的: http://download.csdn.net/source/2809846 大家可以去看看。 --------------------------------------------- 安装方法: 把两个官方原版文件都全部安装完,...
4. **软件设计模式**:介绍了常见的设计模式,如工厂模式、单例模式等,提高代码复用性和可维护性。 5. **软件架构**:讨论了不同的软件架构风格,如三层架构、微服务架构等,以及它们在实际项目中的应用。 6. **...
五、点高级选项->启动设置->重启 六、重启之后会进入安全模式列表,选择禁用驱动程序强制签名,就会貌似正常启动,这时做第一、二步。 五、安装驱动的时候,系统会提示你不安装或者继续安装,必须是继续安装,安装...
【标题】中的“基于Java的实例源码-版的酒店系统,貌似完整.zip”表明这是一个使用Java编程语言开发的酒店管理系统。酒店管理系统通常包括预订、入住、退房、账单管理等多个功能模块,用于帮助酒店高效运营。这个...
通过分析源码,我们可以学习到Java在实际项目中的应用,包括设计模式、数据库交互、MVC架构等关键知识点。 【标签】:Java 【知识点详解】: 1. **MVC(Model-View-Controller)架构**: MVC是一种流行的设计...
1. **MVC设计模式**:Java开发的Web应用常常采用Model-View-Controller(MVC)架构,这种设计模式将业务逻辑、数据和界面显示分离,提高了代码的可读性和可维护性。 2. **Spring框架**:Spring是Java企业级应用开发...
MVC(Model-View-Controller)架构模式是软件开发中的常用设计模式,用于分离业务逻辑、数据模型和用户界面。在这个系统中,Model层负责数据处理和业务逻辑,View层负责显示信息,Controller层处理用户交互。通过这...