J2EE Design Patterns 3 -- Pattern太多了,没必要教条,把Pattern当做启发,理解问题和掌握解决问题的通用方法和思想最重要。

Composite View

做RCP经常用到,一个perspective是有多个独立的view动态组合,可定制,很灵活,易复用。

 

View Helper

展示层的变动需求很频繁。如果与Service访问,业务逻辑数据结构交织紧密。则系统就很僵硬,难以适应变化。将与业务逻辑有关的实现分离出来。View是干净的,Business Model是干净的,只有View Helper既了解Model,又了解View的数据结构。

进一步分层:使用Business Delegate(我们的Service Helper),View Helper与Business Model也独立了。

 

A view contains formatting code, delegating its processing responsibilities to its helper classes, implemented as JavaBeans or custom tags. Helpers also store the view's intermediate data model and serve as business data adapters.

 

 

Business Delegate as Helper Strategy

Helper components often make distributed invocations to the business tier. We suggest using a business delegate in order to hide the underlying implementation details of this request, such that the helper simply invokes a business service without knowing details about its physical implementation and distribution

 

Business Delegate

经常用,就是Client或Controller与Services或Business Model分层。有两种模式,代理和适配。目的不同,实现差不多。一个是为了代理,一个是为了接口对齐。

 

Session Facade

每个Service把给客户调用的功能接口暴露出来,每个方法可能是多个业务逻辑单元的组合。统一的入口,分层,减少小的功能调用次数。类似Service的Front Controller。反正就是好处特别的多。

 

Service Locater

又跟View Navigator差不多,逻辑跟实现分离(加了这一层)。IOC就行了吧。

 

Transfer Object Assembler

又跟Composite View类似,用各种Business Service返回结果的Bean组合成View Object。

 

Transfer Object(Value Object)

用来传输数据的对象,对Business Object的包装,打包数据减少了网络调用的次数,简化了接口。我们用的Transaction Object(里面包了一些List of SDO, 和其他标记属性)。通常需要序列化(传输需要)。

Transfer Object is constructed on demand by the enterprise bean and returned to the remote client

 

Data Access Object

又加一层,是数据库实现分离出来。透明,容易迁移,数据库访问集中化-易于维护,

 

Value List Handler

客户的Query请求可能需要跨越多个Services,会引起多个Servcies执行大量的遍历操作。用单独的Query Service,提供统一的查询入口,同时可以用缓存,或提供统一的分页,排序请求。

 

Composite Entiry

DAO是用来访问数据库的,当然不能与业务逻辑一一对应,Composite Entity应运而生,代表了Business Model的数据模型。这种Entity应该不止Getter & Setter,蕴含了模型之间的关系和业务逻辑。虽然分层是多了点但是也有意义。RDS之所以不好用,主要就是DAO=Business Object = Transfer Object = View Object

Use Composite Entity to model, represent, and manage a set of interrelated persistent objects rather than representing them as individual fine-grained entity beans. A Composite Entity bean represents a graph of objects.

 

 

Service Activator

异步。企业应用中,同步,异步的Service各有用武之地。

 

Use a Service Activator to receive asynchronous client requests and messages. On receiving a message, the Service Activator locates and invokes the necessary business methods on the business service components to fulfill the request asynchronously.The ServiceActivator is a JMS Listener

 


 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
中文译名:J2EE设计模式<br/>作者:<br/>(美)William Crawford & Jonathan Kaplan <br/><br/>本书一边在持久化和消息通信等领域中描述一些新模式,一边向你说明如何在J2EE应用的上下文中实现许多模式。有助于考虑问题的优雅模式以及实际工作的企业开发人员的智慧结晶,在本书中被有机地结合到了一起。<br/><br/>内容简介<br/>已经有了那么多关于设计模式的书,为什么我们还需要另一本呢?<br/>设计模式是解决方案的构建模块:对一次又一次重现的问题求解技巧的抽象。列举和分类设计模式有助于让你了解你一直在重新发明的“轮子”。<br/>然而,一旦你列出抽象的模式,你就得回到现实世界并且在上下文中看那些模式。像资源池这样的模式是很有趣的,但是除非你已经实现了一个,否则仅仅知道它是一个“设计模式”对你并有什么帮助。<br/>那就是奉书与众不同的地方。本书一边在持久化和消息通信等领域中描述一些新模式,一边向你说明如何在J2EE应用的上下文中实现许多模式。有助于考虑问题的优雅模式以及实际工作的企业开发人员的智慧结晶,在本书中被有机地结合到了一起。<br/>本书涵盖了如下的主题:<br/>· 表达层模式<br/>· 业务层模式<br/>· 业务层和表达层之间的交互<br/>· 持久化模式<br/>· 并发性模式<br/>· 企业消息通信模式<br/>· 反模式,或者本身已经变成为模式的错误<br/>在本书中提出的许多模式关注于可扩展性、可伸缩性、灵活性和性能——任何J2EE开发人员的主要关心点。有些模式对你来说将会是新的;有些则会是很熟悉的。但是不管你是否曾经见过这些模式,本书在向你说明如何把它们应用到实际的J2EE应用方面是独一无二的。如果你开发J2EE应用的话,那么本书就属于你的书架——并且应该就在你的手中。 <br/><br/>http://www.china-pub.com/computers/common/info.asp?id=24948<br/><br/>书籍图片:<br/>http://www.china-pub.com/computers/ebook20001-25000/24948/zcover.gif<br/>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值