Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [riena-dev] Riena-Singletons

Hi Stefan,

not sure why 3 is the same as 4 and not the same as 1. The fact that a singleton instance has fields or not is (I believe) something that is a hidden implementation detail. If an implementation that is now 3 (getInstance() with no fields) could become a 1 (adding a field) tomorrow. A fact that should be transparent to the user. (he should still be have his pattern of calling getInstance().invokeMethod()....

dont you think ?

getInstance() should always have that name IMHO......

(I would call a 4 a Utility class and not a singleton, but then I am not really good at patterns anyway)

christian

Am 06.09.2010 um 14:57 schrieb Liebig, Stefan:


Hi Rienaers,
 
While working thru our code base I have detected several kinds of "singletons" (some of them I would not call them a singleton):
1.       the classical singelton - a single instance of class (maybe created lazily or not) with the typical static getInstance() method (sometimes it has a different name) with fields (state)
2.       the static singleton - this a class with only static methods and static fields carrrying some state
3.       the pseudo classical singleton - a single instance of a class with getInstance() but without fields (state)
4.       the utility singleton - a class with only static methods without fields (state)
 
1. and 2. are "real" singletons (they have some state). At these singletons we need to look a little bit closer when we also want to use them within RAP. For them we can use SessionSingletonProvider and SingletonProvider.
 
How about 3. and 4., especially 3. ?
Should we transform 3 to 4 (no more getInstance(), just static methods)?
Or …
Should the getInstance() method always be named getInstance()?
 
 
Opinions, feedback, ..
 
Tschüß,
Stefan
 

-------------------------------------------------------------
compeople AG
Untermainanlage 8
60329 Frankfurt/Main
fon: +49 (0) 69 / 27 22 18 0
fax: +49 (0) 69 / 27 22 18 22
web: www.compeople.de

Vorstand: Jürgen Wiesmaier
Aufsichtsratsvorsitzender: Christian Glanz

Sitz der Gesellschaft: Frankfurt/Main
Handelsregister Frankfurt HRB 56759
Ust-Ident.-Nr: DE207665352
-------------------------------------------------------------
<ATT00001..c>


Back to the top