发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

JDon框架 ContainerBuilder 的一个疑惑

         
2009-09-20 09:21
赞助商链接

jdon framework 里面的 ContainerBuilder 实例 放在 servletcontext中,为啥不做一个单例类呢?
这样有什么优点? (本人以前做的项目中,一般单例用的较多)

谢谢大家指点

2009-09-20 09:38

在oo世界 没有绝对的单例,总是有一个范围,就象我们觉得天空无限宽阔,其实还是有界限的。

项目中的单例只是这个项目范围里的单例,一个项目一个应用,一个servletcontext,随着应用部署失效,单例也就消亡。

否则如果使用静态单例,那么就是JVM级别的单例,一个JVM可能存在多个应用。

如果一个项目单例使用JVM级别单例,范围宽了点。而且随着项目的失效,可能单例没有失效,为安全和性能漏洞提供可能。

所以,无论从设计还是性能,使用更贴切的单例范围更加精确。

2009-09-20 13:18

>>否则如果使用静态单例,那么就是JVM级别的单例,一个JVM可能存在多个应用。

这个地方不太理解,还请banq老师指点一下呵呵。JVM存在多个应用,但是多个应用都是通过独立的类加载器加载的,这样其实还是每个应用一个单例的吧?

2009-09-22 09:21

查了下资料,貌似xmuzyu 说的有道理
tomcat启动时,有好多个classloader,其中加载类到jvm的classloader,跟加载应用的classloader不同,当应用结束后,这个classloader启动的类应该会被回收

不知道说的对不对

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com