title: Separate implementation programming design
body: <p>I would like to have design suggestion for the following issue:</p>
  
  <p>I am programming for server application.(JBOSS)</p>
  
  <p>It's something very common, but I am not sure how to implement this.</p>
  
  <p>I am implementing an Interface. </p>
  
  <p>each class which implements that interface will have different implementation.</p>
  
  <p>in the future, I am sure that I will need to add more implementations, which means I will need to add additional "new" to my code.</p>
  
  <p>How can I separate the "new" allocations to  a different file/package/ear/jar, so if in the future I will have to add additional implementations for this specific interface, I wont need to open the whole source code.</p>
  
  <p>I want to make it plug-ability, as much as I can.</p>
  
  <p>thanks,</p>
  
  <p>ray.  </p>