background image

Java 教程:J2EE 的最佳实践

1. 

 

始终使用 MVC 框架。

  将业务逻辑(Java Bean   

和 EJB 组件)从控制器逻辑(Servlet/Struts 操作)和表示逻

辑(JSP、XML/XSLT)中清晰地分离出来。良好的分层可以带来许多好处。

 

  这项实践非常重要,以致没有其他最佳实践可以与其相提并论。对于良好的 Java EE 
应用程序设计而言,模型-视图-

 

控制器 (MVC) 是至关重要的。它将程序的任务简单地分

为下面几个部分:
  负责业务逻辑的部分(

 

模型,通常使用 Enterprise JavaBeans™ 

 

或传统 Java 对象

来实现)。
  负责用户接口表示的部分(视图)。
  负责应用程序导航的部分(

 

控制器,通常使用 Java Servlet 

 

或类 Struts 控制器这样

相关的类来实现)。

 

  对于 Java EE,有许多关于这个主题的优秀评论,我们特别推荐感兴趣的读者可以

 

参考 [Fowler] 

 

或者 [Brown]的评论,以便全面和深入地了解相关内容。

 

  如果不遵循基本的 MVC 体系结构,在开发过程中就会出现许多的问题。最常见的问

 

题是,将过多的任务放到该体系结构的视图部分中。可能存在使用 JSP 标记来执行数据库

 

访问,或者在 JSP 中进行应用程序的流程控制,这在小规模的应用程序中是比较常见的 ,

 

但是,随着后期的开发,这样做将会带来问题,因为 JSP 逐步变得越来越难以维护和调
试。
  类似地,我们也经常看到将视图层构建到业务逻辑的情况。例如,一个常见的问题就

 

是将在构建视图时使用的 XML 解析技术直接应用到业务层。业务层应该对业务对象进行
操作,而不是对与视图相关的特定数据表示进行操作。
  然而,仅仅使用适当的组件无法实现应用程序的正确分层。我们常常见到一些应用程

 

序包含 Servlet、JSP   

和 EJB 

 

组件所有这三项,然而,其主要的业务逻辑却是在 Servlet 

 

层实现的,或者应用程序导航是在 JSP 中处理的。您必须对代码进行严格的检查和重构,
以确保仅在模型层中处理业务逻辑,在控制器层中进行应用程序导航,而视图应该只关

 

心如何将模型对象呈现为合适的 HTML   

和 Javascript™。

  本文中这项建议的涵义应该比原始版本中的更加清楚。用户接口技术不断地发生着变
化,将业务逻辑关联于用户接口,会使得对接口的更改影响到现有的系统。几年之前 ,
Web 

 

应用程序用户接口开发人员可能从 Servlet   

和 JSP、Struts   

和 XML/XSL 转换中进

行选择。在那以后,Tiles   

和 Faces 非常流行,而现在,AJAX 大行其道。如果每当首选的

用户接口技术发生了更改就要重新开发应用程序的核心业务逻辑,那么就糟透了。
  2. 不要做重复的工作。

 

  使用常见的、经过证实的框架,如 Apache Struts、JavaServer Faces   

和 Eclipse 

RCP。使用经过证实的模式。

 

  回到我们开始帮助客户使用刚出现的 Java EE 标准的时候,我们发现(和许多其他人
一样)

 

,通过直接使用基础的 Servlet   

和 JSP 

 

规范构建 UI 应用程序来开发用户接口开发

 

框架,可以极大地提高开发人员工作效率。因此,许多公司开发了他们自己的 UI 框架,