为什么我要使用AngularJS中的工厂
Why should I use factories in AngularJS?
我正在编写一个应用程序,它对几个提供商(如twitter、facebook)进行OAuth身份验证。我是Angular的新手,UI/模型是用Angular编写的,没有任何问题。但是,我有很多辅助方法,例如callApi、checkVerification、getToken等。我想了8种方法。我一直在考虑在AngularJS创建工厂,但我不知道为什么要这样做?这需要大量重写,我看不出有什么好处?为什么不使用helper方法保持简单呢?
工厂只是创建角度服务的一种方式。您可以将助手方法分组到这些服务中。
作为一名有角度的程序员,不使用服务就像是一名电工,不使用地线,这并不是什么真正需要的,也节省了不必连接的时间,但如果某个设备短路,你就有引发火灾的风险。在编程中,风险在于代码的灵活性、可维护性和测试能力。如果您的某个模块不能按预期工作,则调试将更加困难,等等。
当您有大量的代码时,将辅助函数逻辑分组到服务中可以帮助您更容易地组织或找到它们并测试它们。
这种最佳实践是由许多从事大型angularjs项目的资深开发人员提出的,他们在以这种方式构建代码方面有着成功的经验。它提供了另一个层,您可能会发现以后要在其中插入代码。如果你没有它,你就不会使用它(因为你刚才说的原因,重写它需要时间),然后随着时间的推移,你的代码会越来越混乱。angular的一个主要特点是鼓励代码组织和测试能力。
当然,您可以按照自己想要的任何方式编写代码,但使用服务(通过工厂或其他方法)将有助于避免大型项目长期难以维护。与其他设计模式一样,非常聪明的程序员已经发现了能够带来强大的长期可维护性优势的编码结构和最佳实践。
请参阅:为什么在Angular中使用服务?
了解更多对此的看法。
- Angularjs工厂注入错误
- 如何将参数传递到angularJs中的工厂
- AngularJS:$q.dedefe()不能由工厂方法共享
- AngularJS错误:提供程序必须从$get工厂方法返回值
- 如何在AngularJS工厂中正确声明对象属性
- 修复AngularJS错误:提供程序必须从$get工厂方法返回值
- AngularJS控制器在注入工厂时抛出错误
- AngularJS-工厂中promise ID字段的返回值
- AngularJS-我是不是在工厂注射中遗漏了什么
- Http状态代码工厂AngularJs
- angularjs-ui路由器解析工厂未定义
- 在同一工厂中的函数中使用函数并传递$scope(AngularJS)
- AngularJS可重用工厂
- 访问 angularjs 工厂数据之外的承诺
- 如何将数据从 angularJS 工厂填充到控制器
- 在AngularJS建立一个工厂而不是Singleton
- 使用工厂/服务在控制器AngularJS之间推送数组中的数据
- 无法从工厂 AngularJS 中的 JSON 文件中提取数据
- 与工厂AngularJS在控制器之间共享数据
- 使用工厂angularJS设置并获取值