- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Jive源代码研究(免积分版)
前言 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。我们可以很容易的从这些接口的名字来知道他们的功用,下面的类图给出了这些类之间的一些静态关系:
图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);e.printStack
您可能关注的文档
- Impact Factor For Chemistry Sorted By IF.pdf
- Impact Factor For Materials Science Sorted By IF.pdf
- Impact of Dark Matter Substructure on the Matter and Weak Lensing Power Spectra.pdf
- Impact of Different Mobility Models on Connectivity Probability of a Wireless Ad Hoc Networ.pdf
- Impact of Departure from Normality on the Efficiency of Estimating Regression Coefficients.pdf
- Impact of dissipative effects on the macroscopic evolution of a Vlasov system.pdf
- Impact of Distance in Pitch Class Profile Computation.pdf
- Impact of Heavy Industrialization on the Carbon EmissionsAn Empirical Study of China.pdf
- Impact of Frame Rate and Resolution on Objective QoE Metrics.pdf
- Impact of Heterogeneity on Coverage and Broadcast Reachability in Wireless Sensor Networks.pdf
- JMF消息通信在印刷系统中的应用.pdf
- JOB Encrypted Methodologies工作加密研究法.pdf
- Job Safety Analysis of earthwork cutting 土方开挖jsa.pdf
- JOB_SAFETY_ANALYSIS_GUIDANCE(作业安全分析简明指南).doc
- Join in 六年级下单元测试题.doc
- joinjoin_intake_part_in的区别.doc
- JOptionPane类提示框的一些常用的方法.docx
- Journal of Convex Analysis (accepted for publication) A HYBRID PROJECTION–PROXIMAL POINT A.pdf
- Josephson结的理论模型和特性分析.pdf
- Joseph环的C语言模拟实现.doc
最近下载
- 人教版(2024)七年级上册生物全册集体备课教案 .pdf
- YYT 1789.4-2022 体外诊断检验系统 性能评价方法 第4部分:线性区间与可报告区间.docx VIP
- 江西省临川第一中学2024-2025学年高一上学期开学考试历史试题(解析版).docx VIP
- 2023年汕头市投资控股集团有限公司人员招聘考试题库含答案解析.docx VIP
- 一种凝汽式汽轮机低压缸效率的在线计算方法.pdf VIP
- 口腔名词解释、大题.pdf VIP
- 《革命烈士诗抄》阅读试题及答案.docx VIP
- 招标代理投标文件.doc VIP
- 2022年汕头市投资控股集团有限公司校园招聘考试笔试试题及答案解析.docx VIP
- 2024年四川宜宾初中学业水平考试数学试卷真题(含答案详解).doc VIP
文档评论(0)