的确是本好书,就是有点老了。2年半前出版的。
感觉没什么新东西,尤其是O/R mapping部分,现在已经有现成的Hibernate之类的工具了。
但是还是很值得收藏的一本书,它把一些我们其实在不知不觉中都用过的东西都总结了,并起了适当的名字,便于记忆和交流。据说作者Martin Fowler最善于此道,呵呵。
从书中得到的大概思想是这样:
一共三种设计模式,Transaction Scprit, Domain Model, Table Module。
TS最好不用,不仅不是面向对象,而且很容易产生重复代码;
TM需要开发环境提供RecordSet型对象来支持,在内建了TM支持的.net技术中可以使用,但是java环境比较困难;
DM 是最佳选择。如果model和table能形成严格对应的话,可以把数据访问代码写到model中,商业逻辑也写在model中,这叫Active Record模式;否则的话,则需要用data mapper模式,类似于DAO,data mapper类里负责CRUD处理,商务逻辑还在model里。关于如何实施DM作者没有进一步说明(因为本书的目的只是介绍模式),因此我又买了一本 书,是Martin Fowler极力推荐的,Eric Evan写的Domain-Driven Design。
当然PEAA这本书里还有很多其他的东西,比如说并发处理,Session处理,分布式处理等方面的模式。
加一段废话感想:
书中说,一旦程序员们学会了使用DM,他们便爱不释手。
我想这是因为DM(也就是OO)抓住了事物的真髓,从一开始简单的model开始,不断精化,却不会象TS那样变得臃肿混乱无序,反而会愈趋愈精,model变得抽象,精练,简洁,愈来愈接近事物的本质了。
所以说,DM(OO)是符合道家思想的。
感觉没什么新东西,尤其是O/R mapping部分,现在已经有现成的Hibernate之类的工具了。
但是还是很值得收藏的一本书,它把一些我们其实在不知不觉中都用过的东西都总结了,并起了适当的名字,便于记忆和交流。据说作者Martin Fowler最善于此道,呵呵。
从书中得到的大概思想是这样:
一共三种设计模式,Transaction Scprit, Domain Model, Table Module。
TS最好不用,不仅不是面向对象,而且很容易产生重复代码;
TM需要开发环境提供RecordSet型对象来支持,在内建了TM支持的.net技术中可以使用,但是java环境比较困难;
DM 是最佳选择。如果model和table能形成严格对应的话,可以把数据访问代码写到model中,商业逻辑也写在model中,这叫Active Record模式;否则的话,则需要用data mapper模式,类似于DAO,data mapper类里负责CRUD处理,商务逻辑还在model里。关于如何实施DM作者没有进一步说明(因为本书的目的只是介绍模式),因此我又买了一本 书,是Martin Fowler极力推荐的,Eric Evan写的Domain-Driven Design。
当然PEAA这本书里还有很多其他的东西,比如说并发处理,Session处理,分布式处理等方面的模式。
加一段废话感想:
书中说,一旦程序员们学会了使用DM,他们便爱不释手。
我想这是因为DM(也就是OO)抓住了事物的真髓,从一开始简单的model开始,不断精化,却不会象TS那样变得臃肿混乱无序,反而会愈趋愈精,model变得抽象,精练,简洁,愈来愈接近事物的本质了。
所以说,DM(OO)是符合道家思想的。