在dojo中,我发现将所有对象设置为有状态很方便。这是最佳做法还是反模式?
使所有对象成为有状态的原因:
someObject.get("someProperty")
和someObject.set("someProperty", someValue)
var objectInstance = new ObjectClass({
someProperty: someValue,
someOtherProperty: someOtherValue
});
不总是使用有状态的原因:
很明显,有时候使对象成为有状态是有意义的。如果你需要watch
一个属性,那么使一个对象有状态是有意义的。我要问的问题是:“使所有对象有状态以获取有状态提供的语法糖是否合理?”。基本上有两种选择:
选项1 :让所有类都有状态,以获取有状态提供的语法糖。
选项2 :只允许有状态的成员应该进行观察。
答案 0 :(得分:0)
根据我的经验,这是我的意见:
好像你已经回答了你的问题。我肯定会选择2。 根据您的应用程序大小,保持所有对象状态可能成为一个大问题 - 反模式。
因此,仅在必要时才使用statefull对象。请记住,所有GC都像小的短寿命对象:)长寿命只会填充堆中的旧空间。