拆分大型 angularjs 服务有哪些技术?

What techniques exist for splitting large angularjs services?

目前我正在重建一个大型 angularjs 控制器(1000 多行),并且该控制器正在使用一个大型 angularjs 服务(1000 多行)。我想将大部分业务逻辑从控制器推送到服务,但服务越来越难以维护。有哪些用于定义边界和拆分大型服务的技术?

在我们的服务中,我们有 public 函数,它们是对 api 的 http 调用的包装器,以及仅执行业务逻辑的 public 函数。根据 api call/business 逻辑拆分文件是个好主意吗?或者我应该尝试找到另一种拆分文件的方法,将 api 调用和中继业务逻辑分组在同一个文件中吗?

我通常将一个功能业务逻辑拆分成三个子服务,分别放在单独的文件中:feature.managerfeature.utilsfeature.service

feature.service 包含所有异步调用(ajax、websocket 等),此服务没有实际的业务逻辑,它只处理客户端和服务器之间的通信。

feature.utils包含所有实用方法,例如业务数据结构转换,此服务中的主要方法应该是功能性的。

feature.manager包含大部分业务逻辑,应该依赖于feature.utilsfeature.service