文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发JavaJive源代码研究
精品推荐
特别推荐
·实例讲解:Java中的SOAP技术
·Java语言出现的背景 影响及前景
·Java精华积累:初学者都应该搞懂的问题
·Java多媒体框架设计自动播放机实例详解
·如何有效防止Java程序源码被人偷窥?
·Cell插件在J2EE系统中的应用
·初学者想学Hibernate,初级基础教程
·Java语言实现支持视频点播的WEB服务器
·关于Java编程的中文问题的几条分析原则
·确保J2ME无线移动商业应用程序的安全性
·Java开源技术:Eclipse的使用技巧详解
·新手入门:Java中的修饰词使用方法总结
·JAVA开发者应该去的20个英文网站
·使用JDBC创建数据库访问程序
·JDK的命令详解
·Java学习从入门到精通(附FAQ)
·Tomcat性能调整
·JSF:Java中面向Web开发的生旦净末丑
·对Java语言入门初学者的一些建议
·Java技术的新方向
热点TOP10
·实例讲解:Java中的SOAP技术
·用Java实现SMTP服务器
·用Java编写的记事本程序(2)
·Java语言出现的背景 影响及前景
·Liferay中整合tinyMCE详解
·JDK的命令详解
·Java语言实现支持视频点播的WEB服务器
·运用Jakarta Struts的七大实战心法(1)
·用Java编写的记事本程序(1)
·Tomcat性能调整
·Java学习从入门到精通(附FAQ)
·Java精华积累:初学者都应该搞懂的问题
·Java多媒体框架设计自动播放机实例详解
·Jive源代码研究
·详细解析Java中抽象类和接口的区别
·深入研究Servlet线程安全性问题
·3D编程指南第一部分:快速进入移动JAVA 3D编程世界
·用Java编写的记事本程序(3)
·《精通SOA:基于服务总线的Struts+EJB+Web Service整合应用开发》目录
·Eclipse上的Tomcat插件安装和调试

Jive源代码研究

日期:2007年5月18日 作者: 查看:[大字体 中字体 小字体]


前言 Jive是一个开放的Java源代码项目。其目标是建设一个开放结构的,强壮的,易于扩展的基于jsp的论坛。在其设计目标的指导下,其结构设计得非常得好,融合了很多新的观念,比如Design Pattern,可更换的SKIN,可插入Plug等等。

详细解读其源代码对于理解这些新的设计上的概念是很有裨益的。如果你对Design Pattern和Java语言有一定的了解,但是还是会时常迷惑于其中的话,不妨研究研究Jive源代码,一定会对其中的很多概念有更深入的理解。这篇文章源于我的Jive源代码研究笔记,希望能够提纲挈领,带领大家进入到这个美好的世界。当然,如果没有时间仔细地看源代码的话,看看这篇文章,我想也是会有一些帮助的。

  再开始之前,需要指出的是,Jive中对Design Pattern的应用,并没有拘礼与GOF书中所给出的实现方法,而是有许多变通的地方。一方面,我想是由于具体的实际需要,另一方面,我想这也是设计观念进化的结果吧。因而,这些变通的地方,将是我讲解的重点。整体结构概叙
  基于一个OO的设计原则:面向接口编程,而不是针对实现编程。Jive在设计的时候,把其大部分的基本对象都设计为接口或者抽象类。在Jive中,基本的接口有Forum,ForumMessage,ForumThread,Group,User,Authorization和Query。我们可以很容易的从这些接口的名字来知道他们的功用,下面的类图给出了这些类之间的一些静态关系:

Jive源代码研究

图1:Jive整体关系


  你可能会有疑问,为什么会都是接口呢?这是基于扩展性考虑的。在Jive给出的实现中,所有的这些接口,Forum,ForumMessage,User等等,都使用数据库来实现的,一条消息,或者一个用户对应于数据库中的一条消息Jive使用了DbForum,DbForumMessage,DbUser等类来实现这些接口,通过JDBC来操作数据库,使之作为论坛的底层支撑。

  然而,有时候,或许我们并不想使用数据库,比如我们想只是使用文件系统来作为论坛的底层支撑,这时候,我们需要做的只是编码实现了Forum等等接口的诸如FileFroum,FileForumMessage等对象,然后嵌入Jive中即可,原有的任何代码都可以不用改变!!!这就是面向接口编程的威力了!

  下面来看看具体的设计和编码。

AbstractFactory模式和可扩展性
  如果要实现较好的可扩展性,AbstractFactory模式确实是一件利器。如上面所说,如果要创建的Forum接口的不同实现,而又不想更改代码的话,就需要用到抽象工厂了。再Jive中,AuthorizationFactory类是一个抽象类,用来创建Authorization对象。这是一个抽象工厂,可以通过不同的子类来创建不同的Authorization对象。这个工厂的实现方法是:

  在AuthorizationFactory中使用一个private static变量factory,用来引用具体的抽象工厂的实例:

  private static AuthorizationFactory factory = null;



  用一个private static的String,来指明具体的抽象工厂的子类类名:

  private static String className ="com.coolservlets.forum.database.DbAuthorizationFactory";



  然后是用一个private static的loadAuthorizationFactory方法来给这个factory变量赋值,生成具体的抽象工厂类:

private static void loadAuthorizationFactory() {
if (factory == null) {
synchronized(className) {
if (factory == null) {
String classNameProp = PropertyManager.getProperty(
"AuthorizationFactory.className"
);
if (classNameProp != null) {
className = classNameProp;
}
try {
Class c = Class.forName(className);
factory = (AuthorizationFactory)c.newInstance();
}
catch (Exception e) {
System.err.println("Exception loading class: " + e);

[1] [2] [3] [4] [5] 下一页 




上一篇:java开发技巧:对jar包进行再次修改

下一篇:在CMP实体BEAN中使用BLOB数据类型

Jive源代码研究 相关文章:
·《真三国无双3》PC版连击研究 - 技巧心得
·研究生毕业个人自我鉴定[评语]范文
·《超级机器人大战MX》研究+心得(PS2) - 超级机器人大战攻略秘籍 - 超级机器人大战
·《最终幻想X》扼要心得深入研究(ps2) - 其他电视游戏攻略秘籍 - 其他电视游戏
·搜索引擎主要性能评价指标体系研究
·IMT-Advanced系统空中接口的关键技术研究
·黑客、红客、蓝客、飞客究竟是什么?
·《三国志11》威力加强版能力研究介绍
·分布式拒绝服务(DDOS)攻击及防范研究
·研究解决MSN的CPU高用率的问题
Jive源代码研究 相关软件:
·三角洲 6 之究極三角洲部隊
·当代研究生英语听说 mp3+html
·ASP.NET 领先研究PDG
·仙剑奇侠传2中文版 初始人物究极属性修改器
·2004年全国硕士研究生入学统一考试模拟试卷参考解答(数学二)
·研究生入学考试2001-2002年政治试题
·《推理恐怖研究》创刊号(2006.1)
·XML 网页制作彻底研究PDG
·02年全国硕士研究生入试英语听力文字稿
·98年全国硕士研究生入试数学试题(四)

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn