terminology - 无状态与有状态

标签 terminology stateful stateless

我对包含有关编程中无状态和有状态设计的一些具体信息的文章感兴趣。我很感兴趣,因为我想了解更多有关它的信息,但我真的找不到任何关于它的好文章。我在网上读过几十篇文章,这些文章模糊地讨论了这个主题,或者他们正在谈论 Web 服务器和 session - 这也是关于有状态与无状态的,但我对编码中属性的无状态与有状态设计感兴趣。示例:我听说 BL 类在设计上是无状态的,实体类(或者至少我是这样调用它们的 - 比如 Person(id, name, ..))是有状态的,等等。

我认为了解这一点很重要,因为我相信如果我能理解它,我就可以编写更好的代码(例如考虑到粒度)。

无论如何,很短,这是我对有状态与无状态的了解:

有状态(如 WinForms):存储数据以供进一步使用,但限制了应用程序的可扩展性,因为它受到 CPU 或内存限制

无状态(如 ASP.NET - 尽管 ASP 尝试通过 ViewStates 实现有状态): 操作完成后,数据将被传输,实例将被交回线程池(非晶态)。

正如您所看到的,这是非常模糊且有限的信息(并且非常关注服务器交互),因此如果您能为我提供一些更有趣的信息,我将非常感激:)

最佳答案

无状态意味着没有过去的内存。每笔交易的执行就像第一次完成一样。

有状态意味着有过去的内存。以前的交易会被记住,并可能影响当前的交易。

无状态:

// The state is derived by what is passed into the function

function int addOne(int number)
{
    return number + 1;
}

有状态:

// The state is maintained by the function

private int _number = 0; //initially zero

function int addOne()
{
   _number++;
   return _number;
}

引用: https://softwareengineering.stackexchange.com/questions/101337/whats-the-difference-between-stateful-and-stateless

关于terminology - 无状态与有状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5329618/

相关文章:

python - 术语:用户定义的函数对象属性?

language-agnostic - 是否有任何模式或是否有任何用于继承数据/对象的标准术语?

c# - 有状态微服务中状态的位置

spring - 任何现有的方法来确保在 spring xml 中定义的 beans 是无状态的?

c# - 术语:您如何描述 Nullable<T> 的类型 T?

language-agnostic - 在基于0的索引系统中,人们将索引0处的元素称为 "first"还是 "zeroth"元素?

java - ERROR 清理广播异常时出错

scala - Akka流:状态不断

session - 玩框架如何调和Stateless与Session和Cache

java - 使用 Wildly Ejb 实现的文件操作