更好:允许服务访问多个DAO或仅访问其他服务

雷纳托:

我没有找到解决此特定问题的任何问题。更好的方法是:允许服务(或外观)访问多个DAO(与数据库对话的类)或仅访问其他服务?

换句话说,我应该在不同的Service类之间引入相互依赖的关系,还是通过向每个Service类注入一个以上的DAO(如有必要)来使Service类彼此完全独立呢?

我发现两种策略都能胜任,但是我希望保持一致,并使应用程序尽可能模块化和可维护。

madth3:

我认为允许或禁止某项服务调用另一项服务或多个DAO是主观的。我试图避免不必要的代码或奇数耦合,只是为了满足有关层通信的某些规则,而遵循简单,清晰的对象的基本OO原则通常会导致折衷。

  1. 如果服务B需要服务A中已经包含的其他功能,则应调用它。我试图减少服务之间的依赖性,并且通常最终会定义一小组“基本”服务,可以从其他服务中调用这些服务。

  2. 在服务中创建仅包装对DAO的调用的方法是没有意义的(我认为),因此我更愿意让服务调用所需数量的DAO。同样,具有许多DAO的服务或方法表示应重构的内容或需要调整的数据模型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从其他组件中的服务访问数据

从其他服务器访问MongoDB

从其他订阅访问Azure存储服务

如何允许网络上的其他计算机访问我的虚拟Web服务器?

如何允许网络之外的其他计算机访问我的虚拟Web服务器?

如何在Symfony FormType中访问其他服务?

如何从Cloud Run访问其他GCP服务

从其他 PC 通过 LAN 访问 xampp 服务器

通过主机从其他lxc容器访问lxc容器服务

无法从 HTML 访问 docker-compose 的其他服务

Android:无法从其他类(服务)访问功能

Firebase CLI服务无法从其他设备访问项目

使用Azure Active Directory访问其他服务

访问其他HDD ubuntu服务器CLI

如何从 TypeScript 中的其他服务动态访问方法?

htaccess - 如何允许访问其他文件

从Ubuntu中的其他C#服务访问自签名HTTPS C#服务

仅允许Azure中的一个ASP MVC应用访问Windows Service托管的WCF服务

仅允许从 ASP.NET 核心 Web 服务中的特定 url 访问

Spring Cloud-如何仅允许访问特定微服务的端点?

拒绝所有,但仅允许从同一服务器上的Angularjs访问

Azure - 仅允许单个国家/地区访问部署在 Azure 应用服务上的网站

如何允许其他客户端(不在我的局域网中)访问我的Web套接字服务器?

服务帐户-限制仅访问大型查询

授权 Web 应用程序的用户并允许他们访问 API 服务

传递多个凭证文件以访问GCP服务

多个服务帐户如何访问相同的数据?

设置可以由网络上其他设备访问的Django开发服务器

可以通过其他OS访问的Subversion控制服务器?