根据REST的原理,API应该是无状态的。因此,如果每个请求都有其所需的上下文,那么服务,存储库是否应始终为单例并且可以重复使用同一实例?
有了这个,就没有必要为每个请求一次又一次地连接并创建新实例的框架了。如果它们是无状态的,那么即使在多线程中也没有问题。
那么,在这种情况下推荐的做法是什么?
Spring框架也是以这种方式设计的。
答案 0 :(得分:0)
无状态的东西在编程中很棒。有很多好处。但是,有时候使您的存储库成为有状态是合理的(例如,简单的缓存或重试逻辑或缓冲-取决于您要处理的具体情况)。
所以答案是:使您的代码通常保持无状态,但不要害怕在适当的时候引入状态。
P.S。有一些智能FP技术可以以无状态方式处理状态。 Checout Haskell的State
monad是一个经典示例。