编程思想之Service层和DAO层设计接口浅谈

Service层是提供给表示层用的,对于表示层来说,我不需要知道你怎么实现你的业务的,只要给我一个接口告诉我你能实现就可以,你由谁实现,怎么实现,表示层不关心,也就是说业务实现可能是多种多样的,所以提供一个接口给表示层,这样我业务层怎么改变都不需要修改表示层的代码。

 

同理,DAO层是提供给业务层的,可能实现某个查询的需求,不同的数据库都可以做到比如Hibernate,iBatis, JDBC,提供一个接口给业务层,不管我最终使用哪个数据库,都不会影像到业务层的代码,从而分工明确,并实现解耦。

 

这里附带谈另一个问题,SQL最好还是写在DAO层里,假设我是一个只写业务层的程序猿,不会写SQL,而有另一个会写SQL专门写DAO层的程序猿,我还会自己吭哧吭哧写SQL吗,肯定SQL都让他写,而我只关心我给什么参数,需要什么结果就好了,而对于DAO层来讲,本身就可能用Hibernate或iBatis等,如果我在业务层就限定死了,以后一旦数据库变了,是不是连带着业务层都要改很多。

posted @ 2018-12-25 15:08  风栖林木  阅读(1030)  评论(0编辑  收藏  举报