我正在编写一个应用程序,它可以对多个提供商(例如twitter,facebook)进行OAuth身份验证。我是Angular的新手,UI /模型是用Angular编写的,没有任何问题。 但是,我有很多辅助方法,例如callApi,checkVerification,getToken等等。 我想到了8种方法。我一直在考虑在AngularJS创建工厂,但我不知道为什么要这样做?这将需要大量的重写,我不会看到优势?为什么不用helper方法保持简单?
答案 0 :(得分:1)
工厂只是创建角度服务的一种方式。您可以将辅助方法分组到这些服务中。
作为一名角度程序员并且不使用服务就像是一名电工并且不使用地线,它不需要任何东西,节省时间而不必连接它,但你冒着开火的风险如果某个设备有短路。在编程中,风险在于代码灵活性,可维护性和测试能力。如果您的某个模块无法按预期工作,则调试将更加困难等。
当您拥有大量代码时,帮助函数对服务的逻辑分组可帮助您更轻松地组织或查找它们并对其进行测试。
这个最佳实践是由许多负责大型angularjs项目的高级开发人员提出的,并且通过这种方式构建代码已经获得了成功的经验。它提供了另一个层,您可能希望以后在其中插入代码。如果你没有使用它,你就不会使用它(因为你刚才说的原因,你需要时间来重写)然后你的代码会随着时间的推移变得更加混乱和混乱。角度的一个主要特征是鼓励代码组织和测试能力。
当然,您可以以任何您想要的方式编写代码,但使用服务(通过工厂或其他方法)将帮助您不会最终成为长期难以维护的大型项目。与其他设计模式一样,非常聪明的程序员已经发现了编码结构和最佳实践,可以产生强大的长期可维护性优势。
请参阅:Why use services in Angular?
了解更多观点。