【发布时间】:2014-12-12 08:36:44
【问题描述】:
所以我创建了一个类来强制发送到它的类实例的每个方法(消息)。
即代码:
|a|
a := Animal new.
a makeSound: 'bark'
应该导致对“doesNotUnderstand”的调用(即使它存在于类中)并且它应该检查 post 和 pre 条件是否存在,我将解释: 如果一个方法看起来像这样:
makeSound: aNoise
"%self assert: [canMakeNoise = true]%"
"@self assert: [numOfLegs >= 0]@"
numOfLegs := -1
这意味着除了那个main方法之外,还有一个方法叫做:PREmakeSound,它的实现是:
self assert: [canMakeNoise = true]
还有一个名为 POSTmakeSiund 的方法,其实现如下:
self assert: [numOfLegs >= 0]
---我的问题是 - 因为每个方法调用都在调用 dosNotUnderstand,所以每当我想实际激活该方法时(在我检查了我需要的任何内容之后)我如何才能按原样激活它? 希望我的问题很清楚...
【问题讨论】:
标签: oop smalltalk squeak design-by-contract