Don't use singleton! Properly manage the state of your program.

On Fri, Dec 19, 2014 at 6:45 PM, Gimantha Bandara <[email protected]> wrote:

> Hi,
>
> What about the singleton implementation using java enum? enum provides
> inbuilt thread safety. But still it works only for jdk 6 or later versions.
>
> On Fri, Dec 19, 2014 at 6:09 PM, Udara Liyanage <[email protected]> wrote:
>>
>> Hi,
>>
>> Several places have several methods. However I like the way of having an
>> inner static class. Java make sure a class is load only once, thus only one
>> object is created.
>>
>>
>>    1. class Singleton {
>>    2. private static class InstanceHolder {
>>    3. public static Singleton instance = new Singleton();
>>    4. }
>>    5.
>>    6. public static Singleton getInstance() {
>>    7. return InstanceHolder.instance;
>>    8. }
>>    9. }
>>
>>
>> On Fri, Dec 19, 2014 at 3:19 PM, Manuranga Perera <[email protected]> wrote:
>>>
>>>
>>> ---------- Forwarded message ----------
>>> From: Manuranga Perera <[email protected]>
>>> Date: Fri, Dec 19, 2014 at 3:15 PM
>>> Subject: What is the recommended way to initialize singleton
>>> To: dev <[email protected]>
>>> Cc: Afkham Azeez <[email protected]>, Sameera Jayasoma <[email protected]>,
>>> Sameera Perera <[email protected]>, Ruchira Wageesha <[email protected]>
>>>
>>> Following kind of double locking code doesn't work [1] for singletons.
>>> (please remove this if you see it in any place in the platform)
>>>
>>> if(instance == null) {
>>>     synchronized(MyClass.class) {
>>>         if(instance == null) {
>>>             instance = new MyClass();
>>>         }
>>>     }
>>> }
>>> return instance;
>>>
>>>
>>> There are multiple ways we can do this right. What is the best practice
>>> for defining singletons in unavoidable situations?
>>>
>>> [1]
>>> http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html
>>>
>>> --
>>> With regards,
>>> *Manu*ranga Perera.
>>>
>>> phone : 071 7 70 20 50
>>> mail : [email protected]
>>>
>>>
>>> --
>>> With regards,
>>> *Manu*ranga Perera.
>>>
>>> phone : 071 7 70 20 50
>>> mail : [email protected]
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "WSO2 Engineering Group" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/a/wso2.com/d/optout.
>>>
>>
>>
>> --
>>
>> Udara Liyanage
>> Software Engineer
>> WSO2, Inc.: http://wso2.com
>> lean. enterprise. middleware
>>
>> web: http://udaraliyanage.wordpress.com
>> phone: +94 71 443 6897
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "WSO2 Engineering Group" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/a/wso2.com/d/optout.
>>
>
>
> --
> Gimantha Bandara
> Software Engineer
> WSO2. Inc : http://wso2.com
> Mobile : +94714961919
>
> --
> You received this message because you are subscribed to the Google Groups
> "WSO2 Engineering Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/a/wso2.com/d/optout.
>



-- 
*Afkham Azeez*
Director of Architecture; WSO2, Inc.; http://wso2.com
Member; Apache Software Foundation; http://www.apache.org/
* <http://www.apache.org/>*
*email: **[email protected]* <[email protected]>
* cell: +94 77 3320919blog: **http://blog.afkham.org*
<http://blog.afkham.org>
*twitter: **http://twitter.com/afkham_azeez*
<http://twitter.com/afkham_azeez>
*linked-in: **http://lk.linkedin.com/in/afkhamazeez
<http://lk.linkedin.com/in/afkhamazeez>*

*Lean . Enterprise . Middleware*
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to