这是我对无状态对象的理解:任何从没有类变量的类创建的对象都是无状态对象。我的问题是什么时候应该编写无状态类?拥有无状态对象是一个好习惯吗?
通常情况下,如果你拥有的是无状态的(没有实例变量,只有类变量),它没有理由被实例化,也不应该是一个对象(尽管将其实现为一个类可以有助于将相关功能组合在一起,并管理对静态类变量的访问)。
在我看来,唯一正当使用无状态对象的情况是当它是接口的一个微不足道的实现。例如,一个不可变集合(例如EmptyCollection)可能希望成为一个对象,以便像其他集合对象一样传递和操作,但可以实现为无状态,因为它是不可变的,其状态永远不能改变。