【发布时间】:2017-02-21 21:32:22
【问题描述】:
我来自 Java 世界,那里的服务通常是无状态的。 Angular2 中的服务也应该是无状态的吗?或者我们可以简单地存储状态,因为我们不必像 Java 示例那样关心并发线程访问?
在 AuthService 类中的 https://angular.io/docs/ts/latest/guide/router.html#!#teach-authguard-to-authenticate 处存储状态。
只是为了简化示例还是一种常见做法?我知道服务是实例化的,并且在声明它们的范围内存在,但这意味着我必须关心提供服务的位置才能知道状态持续多长时间。
【问题讨论】:
-
Angular2 中的常见做法是将服务作为单例注入,这意味着它可以而且应该是有状态的。
-
不明白为什么单例应该自动被认为是有状态的。在给定的 Java 和 Spring 示例中,Spring 的服务也是单例的,但必须保持无状态。