Hi Blake,
on Sun, 04 Feb 2007 10:35:33 +0100, you wrote:
On Sat, 03 Feb 2007 20:44:50 -0800, Todd Blanchard wrote:
initializeWithPoint: aPoint
rows := (interval 1 to: aPoint x) collect: [:r | Array new: aPoint y].
Also, stylistically, is it preferred to have an instance-based initializer rather than a class-based variation on "new"?
You might want to compare:
class side>>new | instance | instance := self new. instance thisAndThat "extra code needed". ^ instance
instance side>>initialize "sent automatically by Behavior>>new" iVar1 := 'text'. iVar2 := 0
The latter is preferable over the former (less code, less maintenance). But often people put utility methods like #on:, #with: etc on the class side, for non-trivial initializations.
From the (re-)usability point of view, if you had getters/setters (like in traits), the perfect approach is x := MyClass new setY: 'text'; setZ: 0; yourself.
Or, like I prefer to do it (x := MyClass new) setY: 'text'; setZ: 0.
/Klaus