了解服务和 DAO 层
Posted
技术标签:
【中文标题】了解服务和 DAO 层【英文标题】:Understanding Service and DAO layers 【发布时间】:2012-08-12 10:59:15 【问题描述】:我被要求在项目的业务逻辑模块中创建类文档。我注意到有一个关于如何创建类的模式。图案是这样的
public class AModel()
//fields
//getter and setters
public class AService()
public void processA(AModel model)
//creates instance of AModel, assigns values to fields
//calls ADaoService methods
public class ADaoService()
//has methods which call ADao methods
//sample
public AModel retrieveById(long id)
log.debug(...);
return (ADao.retrieveById(id));
public class ADAo()
//has entityManager and some query
public AModel retrieveById(long id)
return((AModel) entityManager.find(AModel.class, id));
我不明白为什么 AService 调用 ADaoService 方法而不是仅仅调用 ADao 方法,因为 ADaoService 方法只是调用 ADao 方法。在我看来, ADaoService 只是浪费代码。它们是使用 Hibernate 和 JBoss 服务器。我只是这种架构的新手。希望有人能帮助我理解。谢谢。
【问题讨论】:
【参考方案1】:好吧,如果 ADaoService
只是将调用委托给 ADao
什么都不做,那么显然你是对的 - 它目前没有存在的理由。
关于未来理由,嗯,AFAIK,典型的分层不包括ADaoService
层。我工作的地方我们没有。在 Hibernate 文档中从未见过它...
要么你的架构师对层很慷慨,要么他们想到了一些非典型场景。
如果该层没有当前用途,也没有明确的未来用途 - 最好没有它。
【讨论】:
以上是关于了解服务和 DAO 层的主要内容,如果未能解决你的问题,请参考以下文章