are Hierarchical SIngletons in Java possible?
        Posted  
        
            by 
                Zach H
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Zach H
        
        
        
        Published on 2010-12-28T14:57:34Z
        Indexed on 
            2010/12/28
            15:53 UTC
        
        
        Read the original article
        Hit count: 228
        
I've been toying with an interesting idea (No idea if I'll include it in any code, but it's fun to think about)
Let's say we have a program that requires a large number of classes, all of a certain subclass. And those classes all need to be singletons. Now, we could write the singleton pattern for each of those classes, but it seems wasteful to write the same code over and over, and we already have a common base class. It would be really nice to create a getSingleton method of A that when called from a subclass, returns a singleton of the B class (cast to class A for simplicity)
class A{
     public A getSingleton(){
         //Wizardry
     }
}
class B extends A{
}
A blargh = B.getSingleton()
A gish = B.getSingleton()
if(A == B)
    System.out.println("It works!")
It seems to me that the way to do this would be to recognize and call B's default constructor (assuming we don't need to pass anything in.) I know a little of the black magic of reflection in Java, but i'm not sure if this can be done.
Anyone interested in puzzling over this?
© Stack Overflow or respective owner