Although possible it has several drawbacks.

- Singletons that are just a class will never 
  be garbage collected. Instance singletons can 
  be, as soon as there is no reference to it.
  
- If you want to pass that singleton around, you loose 
  typesafty. (The singleton is just instance of 
  java.lang.Class and nothing else)

- You loose flexibility.
  E.g. Different singletons that implement the same 
  interface, and objects that do something with 
  instances that implement this interface.
  
- There can be several versions of the same class
  as each classloader can have its own version.
  (This can also happen, with your other approach

- You cant define interfaces for class that apply to
  the class. (Interfaces apply only to the instances
  of the class)

Not that I recommend not to do it, but when you do it
be aware of this drawbacks. (Some of the drawbacks can 
be overcome through the implementation of the class, 
but that is additional coding)


> -----Original Message-----
> From: Felipe Schnack [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, January 28, 2003 10:56 PM
> To: Tomcat Users List
> Subject: about singletons (ot) 
> 
> Normally we do that implementing a class that have its
> constructor as private, so no one can instantiate it,
> and a getInstance() method or something like it. We 
> wouldn't have the same kind of behavior if we simply 
> declare all class methods/fields as static?
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to