title: Singleton with the strategy pattern
body: <p>Here's what the interface of a strategy could look like</p>
  
  <pre><code>public interface Strategy
  {
      public void doStuff(Object o);
  }
  </code></pre>
  
  <p>And here's a possible implementation</p>
  
  <pre><code>public class StrategyImpl implements Strategy
  {
      @Override
      public void doStuff(Object o)
      {
          //Do things with o
      }
  }
  </code></pre>
  
  <p>Now, I might have hundreds of objects using the implementation StrategyImpl. Should a new instance of StrategyImpl be created for all of those hundreds of objects or is there a better way?<br/>
  I've read on <a href="https://stackoverflow.com/questions/86582/singleton-how-should-it-be-used/92193#92193">here</a> that singletons should not be used to save memory, but it seems really unnecessary to create hundreds of identical instances. Maybe the best solution wouldn't be a singleton but something along the lines of it.</p>
  
  <p>How should I go about creating strategies? Should I not bother myself with these types of issues?</p>