> Am 08.04.2015 um 12:00 schrieb Esteban Lorenzano <[email protected]>: > > I disagree… probably they are not well used, but this is the meaning of each > selector: > > - #uniqueInstance. As it says… a pure singleton. > example: Author class>>#uniqueInstance. > Ideally, classes using this method also cancels #new. > > - #default. It gives you a default instance (as name says), but you can also > create instances of it, for other uses. > example: RPackageOrganizer class>>#default. > > - #current. It gives you a singleton, but something that can change under > certain circumstances, like a UI theme or a platform change. > example: OSPlatform class>>#current. > > so… I do agree there are a lot of wrong uses there, that needs to be fixed… > but each of the used selectors have a meaning, and a different meaning than > the others. > +1
Norbert > >> On 08 Apr 2015, at 11:31, Christophe Demarey <[email protected]> >> wrote: >> >> Hi, >> >> We use quite often the singleton pattern but when I need to use one, I >> always need to ask myself "What is the selector to get this singleton?". >> We use either aClass>>current, aClass>>default or aClass>>uniqueInstance. >> Could we agree on the selector to use and update existing code? >> >> To get a quick overview, I searched about these methods in a Pharo4 image >> and get these results: >> ((SystemNavigation default allImplementorsOf: #default) select: #isMetaSide) >> size. "45" >> ((SystemNavigation default allImplementorsOf: #current) select: #isMetaSide) >> size. "40" >> ((SystemNavigation default allImplementorsOf: #uniqueInstance) select: >> #isMetaSide) size. "19" >> >> Your opinion? >> >> Christophe. > >
