J2EE核心模式再分类

    技术2022-05-11  68

    J2EE核心模式提到了21个模式。如果采用Struts、Spring、Hibernate或EJB 3.0的容器,其中的一些模式已经由框架提供。 本文小鸡射手将其再分类如下: 了解:表示该模式已经由相关框架实现,或者由相关框架提供的功能替代; 不建议:表示不建议使用该模式; 一般:表示一般应用可能不使用该模式; 重要:表示大多数应用均需要使用该模式。   模式名 分类 说明 表现层 Intercepting Filter 一般 建议总是使用标准过滤器策略。 Front Controller 了解 Struts的ActionServlet已经实现了该模式。 Context Object 了解 Struts的ActionForm和DynaActionForm类已经实现该模式。 Application Controller 了解 Struts的RequestProcessor类已经实现了该模式。 View Helper 重要 建议总是采用基于模版的策略,不使用基于控制器的策略。建议采用JavaBean或标签文件策略,不使用定制标签策略。 Compositive View 重要 建议采用第三方标签的策略,如Tile;简单情况也可以使用<jsp:include>。 Service to Wroker 了解 指的就是Front Controller、Applicaton Controller 和ViewHelper的综合。 Dispatch View 不建议 仅在不需要或者很少业务逻辑的情况下使用。 业务层 Business Delegate 了解 采用Spring Ioc容器的依赖注入可以替代该模式。 Service Locator 了解 采用Spring 2.0的<jee:jndi-lookup>可以替代该模式。 Session Façade 重要 建议在轻量级框架中定义业务接口并采用POJO实现,在EJB 3.0容器中采用Stateless Session Bean实现。 Application Service 一般 一般的建议在Session Façade中实现业务逻辑。但是如果除了Stateless Session Bean还需要提供对应的Web Service接口,可以提供Application Service层实现业务逻辑;而Session Façade和Web Service仅提供接口。 Business Object 最重要 建议在轻量级框架中使用Hibernate实现,在EJB 3.0容器中使用Entity实体实现。不建议使用Entity Bean。 Composite Entity 不建议 不建议使用Entity Bean。 Transfer Object 不建议 不建议使用远程接口,层间也就不需要Transfer Object。如果需要群集,建议采用并排结构代替分布式结构。 Transfer Object Assembler 不建议 不建议使用Entity Bean及远程接口。 Value List Handler 不建议 建议采用Hibernate或JPA的query实现。 集成层 Data Access Object 重要 建议在轻量级框架中定义数据访问接口并采用POJO通过Hibernate native API或JPA实现,在EJB 3.0容器中采用Stateless Session Bean通过JPA实现。采用Spring Ioc的依赖注入,因此不需要DAO工厂策略。 Service Activator 一般 建议采用Spring 2.0的<jee:jndi-lookup>来依赖注入ConnectionFactory和Destination,并使用JMS 1.1统一的API处理Publish-Subscribe和Point-to-Point模式;也可以考虑采用Spring的JmsTempleate类。Message Driven Bean建议采用EJB 3.0的规范实现。 Domain Store 了解 Hibernate native API或JPA已经实现该模式。 Web Service Broker 了解 EJB 3.0规范中可以将Stateless Session Bean实现为Web Service。也可以采用Servlet实现Web Service(如XFire)。           小鸡射手认为最重要的Business Object,请参考 类图和ORM关系一文。

    最新回复(0)