title: Force Singleton Pattern on a Class implementing an Interface
body: <p>I better explain the question with an example.
  I have an <strong>Interface Model</strong> which can be used to access data.
  There can be different implementations of Model which can represent the data in various format say XMl , txt format etc. <strong>Model</strong> is not concerned with the formats.
  Lets say one such implementation is <strong>myxmlModel</strong>.</p>
  
  <p>Now i want to force <strong>myxmlModel</strong> and every other implementation of <strong>Model</strong> to follow <strong>Singleton Pattern</strong>.The usual way is to make <strong>myxmlModels</strong> constructor private and provide a static factory method to return an instance of myModel class.But the problem is <strong>interface</strong> cannot have static method definitions and a result i cannot enforce a particular Factory method definition on all implementation of <strong>Model</strong>. So one implementation may end with providing <strong>getObject()</strong> and other may have get<strong>NewModel().</strong>.</p>
  
  <p>One work around is to allow package access to <strong>myxmlModel's</strong> constructor and create a Factory class which creates the <strong>myxmlModel</strong> object and cache it for further use.</p>
  
  <p>I was wondering if there is a better way to achieve the same functionality .</p>