Visualworks Cincom Smalltalk类变量销毁

时间:2013-12-04 15:18:23

标签: singleton smalltalk visualworks destruction

我们如何在Visualworks Smalltalk中初始化类变量并在使用后销毁它? 我想知道ClassVariables。 NOT ClassInstanceVariables。

我正在实施Singleton模式,这是我的代码

MyClass class>> aClasMethod
         aClassVariable isNil ifTrue:[
               aClassVariable := 'I am a variable'.
         ]
         ^aClassVariable.

创建变量后,我无法销毁它。 即下次运行我的代码时,我发现类变量保留了以前的值。 我怎么能避免这个?

我试过这个:     MyClass allInstances做:[:inst |         inst变成:零     ]。 但没用。

2 个答案:

答案 0 :(得分:1)

最好的方法是添加一个类方法,将类变量设置为nil,然后在适当的时候清除它时调用它。我一直使用Singleton模式这样做。

答案 1 :(得分:0)

我认为我们通常使用单例模式,因此我们只有一个对象。我不知道你为什么要在类变量中存储一个字符串值。尝试存储对象,这样您将只拥有该特定对象的一个​​副本,并将值存储在实例变量中。所以特定对象只有一些特定的值。然后将来如果你需要更新存储在实例变量中的值,那么再创建一个方法updateValues并做一切。