我们如何在Visualworks Smalltalk中初始化类变量并在使用后销毁它? 我想知道ClassVariables。 NOT ClassInstanceVariables。
我正在实施Singleton模式,这是我的代码
MyClass class>> aClasMethod
aClassVariable isNil ifTrue:[
aClassVariable := 'I am a variable'.
]
^aClassVariable.
创建变量后,我无法销毁它。 即下次运行我的代码时,我发现类变量保留了以前的值。 我怎么能避免这个?
我试过这个: MyClass allInstances做:[:inst | inst变成:零 ]。 但没用。
答案 0 :(得分:1)
最好的方法是添加一个类方法,将类变量设置为nil,然后在适当的时候清除它时调用它。我一直使用Singleton模式这样做。
答案 1 :(得分:0)
我认为我们通常使用单例模式,因此我们只有一个对象。我不知道你为什么要在类变量中存储一个字符串值。尝试存储对象,这样您将只拥有该特定对象的一个副本,并将值存储在实例变量中。所以特定对象只有一些特定的值。然后将来如果你需要更新存储在实例变量中的值,那么再创建一个方法updateValues并做一切。