2017-08-05 19:21 GMT-03:00 Peter Uhnak <i.uh...@gmail.com>:
> If I want to initialize the value in a separate method (typically for testing
> or reuse), then I prefer to avoid state mutation there and instead I return
> the result.
> ^ property ifNil: [ property := self createNewProperty ]
> "I won't touch property instance variable here, just create a new
> value and return it"
> ^ self bar collect: [ :e | e drink ]
> > an initializationMethod returning the value instead of the receiver is a
> > code smell to me.
> For this reason I tend to name such methods createNewX, initializeX says to
> me "only mutate state and return self"
I like this approach very much, it makes the accessor code concise and
separates the implementation of the property creation.
Esteban A. Maringolo