我经常听到“无状态(Stateless)”和“不可变(Immutable)”这两个术语。例如,HTTP是一种无状态协议,而字符串对象则是不可变对象。但我很难理解它们之间的区别。当我创建一个无状态对象时,它不会在内部存储任何“状态”数据。如果我创建一个不可变对象,那么它就意味着它永远不会改变。
你的意思不是一样吗?
由于不可变对象不会改变,根据定义,它不能有状态。它永远都是什么样子的。如果一个对象没有状态,那么它就不能被改变(根据定义)。因此,所有无状态对象都是不可变的,而所有不可变对象都是无状态的,不是吗?
可变的无状态对象或不可变的有状态对象有什么例子?
(不可变(状态无关))
。 - icc97