Saw*_*yer 16 architecture dao design-patterns domain-driven-design
我见过很多代码都使用了service-dao模式,我不知道这个模式的来源.它强制执行前层调用服务,然后将一些服务任务委托给dao.
我想问一下 :
Ron*_*erg 16
理想情况下,您的DAO层"抽象"访问某些数据存储系统(数据库,文件系统,LDAP目录......).因此,从这个意义上讲,它仅用于与数据访问相关的任务.但是,您还可以使用DAO层访问Web应用程序或应用程序外部的其他组件.这是关键点,它提供了对某些外部组件的访问.
主要思想是没有DAO层的实现细节可以转移到更高层(隔离).思考这个问题的一个很好的起点是:如果我计划更换我的DAO层提供访问权限的组件(例如数据库),我还需要做什么?例如,您在XML文件中有一些数据,并且您计划将数据迁移到数据库.
假设您有各种与XML相关的异常,这些异常会逃脱您的DAO层.然后,将XML层迁移到数据库层变得非常困难.但是,如果您已经封装了DAO层的所有实现细节,那么这将变得更加容易.
最后,它是关于代码的可维护性.您对特定层(服务,DAO,...)的实现细节的依赖性越小,代码的可维护性就越好.