smalltalk公共初始化
|
有什么方法可以“隐藏”初始化方法,以便构造后无法调用它?
我想要类似的东西:
Class>>new: params
^super newInstance initializedBy: [
\"actual initialization code\"
]
没有找到相关结果
已邀请:
6 个回复
宦哨抹存胳
但是,您仍然可以使用各种初始化方法,但现在它在类方面,并没有真正执行您想要的操作。但是,您可以尝试:
在实例方面:
我认为这是您想要的大致概念。我认为这样做不值得,因为我只能使用instVarNamed并更改您的对象。 smalltalk约定很简单...外部的任何人都不应在初始化方法类别中调用任何东西,而不能真正了解他们为什么这样做。 您也可以将所有内容保留在类中:
响摔衅幸
好按紊叉
镀建啼
诫商
b)添加一个测试用例,该用例通过您的代码运行重写搜索,并计算不在其自身类层次结构的#new方法中的#initialize发送者。实际上,如果您自己的类是从一个通用模型继承的,则您实际上应该只有一个#initialize发送者,并且可以在测试用例中轻松断言。 希望这可以帮助。
挂帘妈乡
类方法:
在我的(ST / X)图像中尝试过-可以! 当然,可以将辅助方法放在层次结构中的较高位置。