我有一个基于AngularJS的应用程序,它定期通过RESTful Web服务检索大量数据(每秒500 kb - 1 Mb)。我有一个中央服务,负责检索该数据。当服务成功检索到数据时,服务会将数据分解为逻辑块并广播数据可用。这个广泛的演员阵容由许多控制器拾取并根据需要显示。
由于这个单一服务正在处理数据的检索和逻辑分组,因此它做了很多事情并且变得非常复杂。有一个更好的方法吗?我的检索服务是否应该使用其他服务将数据分发给那些单独的控制器?这对我来说更有意义,但我担心数据副本和内存。这些担忧是否有充分根据?
答案 0 :(得分:1)
回应......
我有一个负责检索它的中央服务 数据。当服务成功检索数据时,服务 将数据分解为逻辑块并广播数据 可用。
...和...
由于这个单一服务正在处理检索和逻辑 对数据进行分组,它做得非常多,而且已经变得很好 复杂。有一个更好的方法吗?我应该检索 服务使用其他服务将数据分发给那些个人 控制器?
...通常,拥有single-responsibility个文件是好的 - 也就是说,每个文件的每个组件(例如,控制器,工厂)有一个责任。因此,对于您的查询,这是一个很好的范例。可以实现两个单独的服务,其中一个处理数据的逻辑分块,而另一个处理广播数据可用性。
我还建议您查看以下指南,因为这些指南可以帮助您编写代码。
至于数据复制和内存问题,记住这些是一件好事 - 避免编码已知导致此类问题的样式和模式。不过,最好首先尝试并实施,看看是否会遇到这样的问题。然后,从那里开始。