The Traits would be cool to standardise the behaviour and to mark it as such 
(implicit documentation), however, Traits cannot add instance/class variables 
IIUC, that limits what they can do (and would make it more than one step).

> On 19 Jan 2017, at 11:33, Cyril Ferlicot D. <cyril.ferli...@gmail.com> wrote:
> 
> On 19/01/2017 11:23, Siemen Baader wrote:
>> Is there a trait to quickly create singletons in Pharo, along the way of
>> the Ruby Singleton mixin?
>> 
>> https://ruby-doc.org/stdlib-1.9.3/libdoc/singleton/rdoc/Singleton.html
>> 
>> (and ideally also observer/observable, which I am going to need next..)
>> 
>> -- Siemen
> 
> Hi!
> 
> Singleton in Smalltalk are really easy so there is no Trait.
> 
> 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 ]
> 
> new
>       ^ self error: 'I am a Singleton. Use current to get my instance or
> reset my instance with a new project. Maybe explain why there is a
> Singleton because we should avoid them if possible.'
> 
> 
> Now for the observer pattern you have the Announcement framework in Pharo.
> 
> I don't really have the time to explain but I think there is some doc on
> internet and on the help browser of Pharo. I found this:
> http://pharo.gemtalksystems.com/book/LanguageAndLibraries/announcements/
> (I did not read it so I don't know what it's worth)
> 
> -- 
> Cyril Ferlicot
> 
> http://www.synectique.eu
> 
> 2 rue Jacques Prévert 01,
> 59650 Villeneuve d'ascq France
> 


Reply via email to