When to use a Constructor and when to use getInstance() method (static factory methods)?
<ol>
<li><p>When and how should we use a Constructor </p>

<p>Foo bar = new Foo();</p></li>
<li><p>And When and how should we use getInstance() (static factory methods)</p>

<p>Foo bar = Foo.getInstance();</p></li>
</ol>

<p>What is the difference between these two, I always use the 1st way but when to use the 2nd way??</p>

<p><strong>UPDATE 1</strong></p>

<p>Say, I need to implement the class too and use .getInstance() from a different class.</p>

<p><strong>UPDATE 2</strong></p>

<p>What do you guys mean by overusing singleton?</p>
