title: Passing arguments to a specific subclass, through a factory method
body: <p>Let's say I have an abstract class Drink, and a factory method which chooses the type of Drink (Wine, Beer, etc.) to create at runtime.</p>
  
  <p>Each Drink needs some arguments to properly initialize itself. Some of these are common to all Drinks; for example, they might all require a DrinkConfig argument.</p>
  
  <p>But each Drink may have its own unique requirements too. Maybe Wine needs a Sommelier helper object to initialize itself. Beer doesn't need that, but it may need its own helper objects.</p>
  
  <p>So what should I pass to the factory method? When I call it, I have all the helper objects available, so I could just pass all of them to the factory. But this could end up being a lot of arguments. Is there a better way to design this?</p>
  
  <p><strong>EDIT:</strong> Let's assume I can't just create the helper objects in the factory; they're only available from the caller.</p>