07/04/11 23:50:42
>>24,25 を Squeak Smalltalk で意訳してみました。#subclassResponsibilityなメソッドが未再定義だと警告。
Trait named: #TShouldBeDefinedAlert
TShouldBeDefinedAlert classTrait >> new
| shouldBeDefined |
shouldBeDefined := (self allSelectors
detect: [:sel | (self lookupSelector: sel) messages includes: #subclassResponsibility]
ifNone: [^super new]).
self error: shouldBeDefined printString, ' should be defined'
Object subclass: #AbstractMyClass
uses: TShouldBeDefinedAlert
AbstractMyClass >> hoge
self subclassResponsibility
AbstractMyClass >> fuga
self subclassResponsibility
AbstractMyClass subclass: #MyClass
MyClass >> hoge
^#something
- - - - - - - - - - - - - - - - -
MyClass new "=> Error: #fuga should be defined"