【发布时间】:2013-02-12 19:53:05
【问题描述】:
当我加载包含此类的 Monticello 包时,是否有特定方法会在类中执行?
一个例子:
版本 1,
SomeMonticelloPackage-MyName.1.mcz:
Object subclass: #SomeClass
classVariableNames: 'ImportantParameter'
SomeClass class>>defaultParameter
^ false
SomeClass class>>initialize
ImportantParameter := self defaultParameter
在第 2 版中,我更改了重要参数的默认值,
SomeMonticelloPackage-MyName.2.mcz:
SomeClass class>>defaultParameter
^ true
SomeClass class>>initialize
ImportantParameter := self defaultParameter
- 如果我将版本 1 加载到空图像中,一切正常。
- 如果我将版本 2 加载到空图像中,一切正常。
- 如果我先加载第 1 版,然后再加载第 2 版,则第 2 版会使用错误的默认值。
所以我希望当一个包含这个类的蒙蒂塞洛包被加载到一个图像中时,可以在一个类中调用一些方法,这样我就可以重新初始化这个类。有吗?这个问题有其他解决方案吗?
【问题讨论】:
-
我真的不明白你的问题。为什么我首先要加载任意版本?只需创建一个具有正确默认值的新版本,在签出最新版本时一切都会好起来的。
-
一旦有新版本可用,有人可能会更新她的版本。
标签: smalltalk pharo squeak monticello