在新的项目里,没有办法理解Service和Dao的意义,今天在晚上查找了一下 Service层的作用,在Jdon上搜到了一篇帖子,层的职责的请教,看到了里面的一些讨论,自己对这两个层次的划分也明确了许多。
Service层是业务逻辑,包括对一些数据的预处理啊,这样的一层也便于以后业务变化后,改动的代价较小(这个也是设计模式中心思想);
Dao层主要是对封装对数据库的访问,查询数据,或者对对象持久化,不应改包含任何的业务逻辑。
而且我也查看了Appfuse中的Service层和Dao层的设计,也都是遵循这个原则的,即便是在Service中代码只有一行,就是调用Dao的方法,也还是有Service类存在。所以我觉得appfuse的设计者也是对这中设计是很认同的.
现在项目中会有的人会想要把查询 和 增删改的操作分离,个人觉得就没有这个必要了,因为有的时候,查询并不是只有查询的,而且,开发人员还要去分辨什么时候要分开,什么时候不用分,会弄的人很郁闷的,,不知道在一些大型的项目或产品中采用的是什么样的设计方式.
-----------
20090622
再次回顾这篇文章,其实,这就是一个软件的设计的概念--分层。
横向的分层:业务层和数据库访问层。如果系统的数据库替换,我们会很容易更改数据库层。
纵向的分层:按业务的种类划分层次。比如:用户管理模块,配置管理模块等。