我对一些关于编程中的无状态和有状态设计的具体信息的文章很感兴趣。我感兴趣是因为我想了解更多关于它的知识,但我真的找不到任何关于它的好文章。我在网上读了几十篇含糊地讨论这个主题的文章,或者他们谈论的是web服务器和会话--它们也是有状态和无状态的,但我对编码中属性的无状态和有状态设计感兴趣。例如:我听说BL-classes在设计上是无状态的,实体类(或者至少我是这么叫它们的--比如Person(id,name,..))是有状态的,等等。
我认为知道这一点很重要,因为我相信如果我能理解它,我就能写出更好的代码(例如,考虑到粒度)。
总之,非常简短,这是我对有状态和无状态的了解:
有状态(如WinForms):存储数据以供进一步使用,但限制了应用程序的可伸缩性,因为它受到CPU或内存限制的限制
无状态(就像ASP.NET一样--尽管ViewStates试图成为有状态的):动作完成后,数据被传输,实例被交还给线程池(无定形)。
正如您所看到的,它的信息非常模糊和有限(并且非常关注服务器交互),所以如果您能为我提供一些更有趣的信息,我将不胜感激:)
发布于 2012-06-29 18:22:41
形容词有状态或无状态仅指会话的状态,它与为相同输入提供相同输出的函数概念无关。如果是这样的话,任何动态web应用程序(背后有一个数据库)都将是有状态服务,这显然是错误的。考虑到这一点,如果我委托任务在底层技术(如coockie或http会话)中保持会话状态,我就实现了一个有状态服务,但如果所有必要的信息(上下文)都作为参数传递,我就实现了一个无状态服务。应该注意,即使传递的参数是会话状态的“标识符”(例如,票证或sessionId),我们仍然在无状态服务下操作,因为会话是无状态的(票证在客户端和服务器之间持续传递),并且可以说,这两个端点是“有状态的”。
https://stackoverflow.com/questions/5329618
复制相似问题