无名图书
收藏
POJOs IN ACTION中文版
理查德林
出版社
电子工业出版社
出版时间
2007-04-01
ISBN
9787121039614
评分
★★★★★
标签
Java
POJO
J2EE
架构设计
书籍介绍
《POJOS IN ACTION中文版:用轻量级框架开发企业应用》是一本实践指南,它围绕POJO(普通Java对象)构造了一个完整的应用程序,对框架之间的各种组合进行了详细的举例说明;描述了在采用POJO和轻量级框架如Hibernate、Spring时,如何制定主要设计决策,包括怎样组织和封装业务逻辑、访问数据库、管理事务以及如何处理数据库并发等。此外,《POJOS IN ACTION中文版:用轻量级框架开发企业应用》还详尽地分析了事务管理、悲观锁、乐观锁、条件组合搜索等难点问题。
精彩摘录
"
表示层或facade首先调用PlaceOrderService更新PendingOrder,然后调用RestaurantRepository获取可选餐馆,PlaceOrderService并不返回可选餐馆的列表,如果它这么做了,就会和UI设计仅仅耦合在一起。最好让服务和UI分离,让领域模型的客户再次调用领域模型以取得它要显示的数据。facade或表示层调用领域模型服务更新领域模型,并调用仓库取得显示给用户的数据。领域模型被本地调用给调用,因此多次调用并无太大开销,这一点非常重要。
"
"
访问仓库的各种选择 仓库主要由领域服务使用,不过它们也被一些实体如PendingOrder调用。要对仓库对象调用方法,调用者必须明显持有该对象的引用。此前你已看到仓库如何作为构造函数参数传入PlaceOrderSerivce。然而,就下面我要描述的理由来看,对领域模型实体,并不总能做到这一点。下面,我们来探究一下这个问题及其各种解决方法。 最便利的方案是将仓库作为构造函数参数传入实体,和它们传入服务的方式一样。这样以来,实体就能借助轻量级容器的构造子注入机制进行初始化。与将仓库作为方法参数传递相比,将仓库作为构造函数参数传递要简单得多,而且不存在使用singleton时的缺点,我稍后再作描述。
"
"
ORM的限制 另外,你也许设计了一个领域模型,无法映射到合乎要求的数据库模式。如果真的碰到这种情况,你久必须修改领域模型和数据库模式两者之一...但是,一旦修改了数据库模式,那我就需要相应地更改领域模型。
"
"
另一个主要区别是POJO facade向表示层返回领域对象而不返回DTO。例如,稍后你将看到,实现“下订单”用例的POJO facade会返回PendingOrder领域对象,而不返回包含其数据拷贝的DTO。由于你不必为每个领域对象定义DTO和编写构造DTO的代码,在某些应用程序里,这部分代码可能多达10%,因此可以显著简化整个facade。
"
"
这些类按如下方式阻止在一起。当表示层调用PlaceOrderFacade时,Spring TransactionInterceptor便开始一项事务,并打开一个持久层框架连接,供仓库使用。PlaceOrderFacadeImpl则调用领域模型类验证输入并执行计算。当PlaceOrderFacade返回时,TransactionInterceptor关闭持久层框架连接并提交该事务。
"
"
Transaction Script模式... 所以,这种模式只应该在这样的情况下应用:应用程序的业务逻辑及其简单,或者持久层框架访问数据库的效率不够高时。
"
作者简介
Chris Richardson是位开发人员和架构师,他拥有超过20年的开发经验。他的咨询公司擅长启动新项目和指导开发团队。Chris曾在Insignia、BEA及其他公司担任技术主管。他拥有英国剑桥大学的计算机科学学士和硕士学位,目前住在加利福尼亚的奥克兰。
用户评论
我个人感觉这本书更像是其他“模式”书集合起来的大杂烩,太多地方没点中要害。
这么对得起In Action名号的书籍,作者应该与时俱进的更新一下版本了
虽然是06年出版的书,但是里面关于领域驱动设计,测试驱动开发,Hibernate,Spring的一些思想依然很有价值,虽然之前也浏览过Evans的《领域驱动设计》这本业内经典,但pia用代码的方式让我直观的认识了DDD,“Talk is cheap, Show me the code”,不是么?
非常不错,通熟易懂
没有理由不看,小清新的架构模式。
好吧。。。终于又找到一本好书,DDD的书貌似就那么几本啊,都写得很精彩。
电子工业出版社的其他书籍
查看全部
唤醒孩子的学习力2:运用高效的学习方法
边玉芳
唤醒孩子的学习力1:搭建学习的底层系统
边玉芳
股票投资第一课
同花顺
基础统计学 (第14版)
【美】Mario F. Triola
生活不是掷骰子
刘雪峰
精通推荐算法:核心模块+经典模型+代码详解
谢杨易
收藏