将控制器与与服务器交互的服务分离的任何好处

Any benefit to decoupling controllers from services that interact with the server

本文关键字:分离 任何好 服务 交互 控制器 服务器      更新时间:2023-09-26

在Angular.js中,我想知道在控制器和向服务器发出请求的服务之间有一个额外的接口是否有任何解耦的好处。

最近一直在这样做,我真的无法判断拥有这个额外的跳跃是否完全没有意义,以及这是否真的只是在中间多了一只手的相同握手,等等。

所以我有一个控制器,然后是一个注入到该控制器中的服务。此服务注入了实际的"服务器请求服务",并通过回调或发布/订阅向控制器报告。

感谢您的任何建议。

我想说这取决于您服务的主要目的。让我把它弄对,基本上你有这个:

Controller A
|
|--> Service Main
   |
   |--> Service Ajax

因此,假设主服务充满了业务逻辑,这取决于 ajax 查询。但是 ajax 查询本身可能根据每个客户有不同的实现。在这种情况下,您的解耦方案可能会使更快地交换它们变得更加容易。除此之外,任何数据转换,如合并来自不同来源的多个请求等,都可以在这里完成,你的主控制器只是维护与你的应用程序绑定的逻辑。但实际上,在这一点上,它似乎更像是一种个人风味,而不是最好的建议规则。

我强烈建议您尽量减少发布/订阅的使用(如果您使用 $broadcast/$emit),因为这些会引入大量开销,尤其是在较大的应用程序中。相反,尝试将一个承诺从 ajax-query 一直返回给控制器。