Hi Cy Bird,
Just wondering, have u considered going back to OOPS funda yet.
The
pattern that u r using is a "Singleton Pattern" and should be used when there should be a single instance of any class. Typically such classes r managers in the design. They manage resources and defines commn protocol betn different objects.
Some e.g. :- A manager managing print services, ApplicationManager keeping registry of applications running in an multi Application environment. etc.
Do u know doing this for every objects will be horrible to maintain large projects. The major prob with this pattern is that generally such classes object reference should be got thru a public static method. So to give subclasses change to override behaviour such classes should look up environment variable like System.getProperty("myclass") to initiate the instance. In ur case then all the classes should have to look up the environment.
Hope u'll reconsider ur design decision.
Sincerely,
Ashish