无状态对象良好实践与否

use*_*315 3 java oop class object stateless

这是我对无状态对象的理解:从没有类变量的类创建的任何对象都是无状态对象.我的问题是我们什么时候应该写无状态的课程.拥有无状态对象是一个好习惯.

fab*_*ian 6

如果您需要"将功能作为参数传递",则无状态对象非常有用.由于函数在java中不是对象,因此使用函数作为参数传递对象是一种实用的方法.

例如Comparator,如果一个类没有实现,Comparable或者你需要支持使用"<" - 关系的不同定义进行排序,则可以使用s进行排序.(例如,加/减顺序;按不同属性排序......)

工厂(请参阅http://www.oodesign.com/factory-pattern.html)可能是无状态对象.工厂的所有功能都可以创建对象,创建它们所需的所有参数都可以作为工厂功能的参数给出.