On Thu, Jan 19, 2017 at 3:51 PM, Siemen Baader <siemenbaader@gmail.com> wrote:
On Thu, Jan 19, 2017 at 11:33 AM, Cyril Ferlicot D. < cyril.ferlicot@gmail.com> wrote:
You just need a class variable #UniqueInstance and those methods:
current "Can also be named #default or #instance" ^ UniqueInstance ifNil: [ UniqueInstance := self basicNew; initialize; yourself ]
Actually this should have been: (no `;` between basicNew and initialize). ^ currentInstance ifNil: [ currentInstance := self basicNew initialize; yourself ] This is not a problem. But it illustrates that this would be nice to have it unit tested separately and mixed in with a trait/mixin to avoid the risk of manual errors in what in the end is an already solved problem - if one wants singletons, of course. :) Siemen
Wouldn't a class instance variable be better? I want new singletons for every subclass. http://rmod-pharo-mooc.lille.inria.fr/MOOC/Slides/Week3/ C019-W3S03-Basic-Variables.pdf
I would also have used super new, why BasicNew? But my wish to create subclasses seems to answer that already.
Thanks for your find-grained example, Cyril!
Siemen