0

我们如何在 Visualworks Smalltalk 中初始化一个类变量并在使用后销毁它?我想了解 ClassVariables。不是 ClassInstanceVariables。

我正在实现单例模式,这是我的代码

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

创建变量后,我无法销毁它。即下次我运行我的代码时,我看到类变量保留了它以前的值。我怎样才能避免这种情况?

我试过这个: MyClass allInstances do: [:inst | 实例变为:无]。但是没有用。

4

2 回答 2

1

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

于 2013-12-04T22:16:34.387 回答
0

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

于 2013-12-06T01:14:28.650 回答