我对包含有关编程中无状态和有状态设计的一些具体信息的文章感兴趣。我很感兴趣,因为我想了解更多有关它的信息,但我真的找不到任何关于它的好文章。我在网上读过几十篇文章,这些文章模糊地讨论了这个主题,或者他们正在谈论 Web 服务器和会话 - 这也是关于有状态与无状态的,但我对编码中属性的无状态与有状态设计感兴趣。示例:我听说 BL 类在设计上是无状态的,实体类(或者至少我是这样称呼它们的——比如 Person(id, name, ..))是有状态的,等等。
我认为了解这一点很重要,因为我相信如果我能理解它,我就可以编写更好的代码(例如考虑到粒度)。
无论如何,很短,这是我对有状态与无状态的了解:
有状态(如 WinForms):存储数据以供进一步使用,但限制了应用程序的可扩展性,因为它受到 CPU 或内存限制
无状态(如 ASP.NET - 尽管 ASP 尝试使用 ViewStates 实现有状态):
操作完成后,数据将被传输,并且实例将被移交回线程池(非晶态)。
正如您所看到的,这是非常模糊和有限的信息(并且非常关注服务器交互),所以如果您能为我提供一些更有趣的信息,我将非常感激:)
无国籍意味着没有过去的记忆。每笔交易的执行就像第一次完成一样。
Stateful意味着有过去的记忆。以前的交易会被记住,并可能影响当前的交易。
无国籍:
// 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 https://softwareengineering.stackexchange.com/questions/101337/whats-the-difference-between-stateful-and-stateless
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)