I have a factory-type class that creates its products based on the traits of another object. This means that I need a reference to the input object somewhere. I am planning to either:
A) Define the input object as a property and set it in a custom init method. So the factory's owner calls "initWithObject:", then calls "createProduct".
B) Define the factory's creation methods so that they take in the input object as an argument. So the factory's owner inits normally and then calls "createProductWithObject:".
All else equal, is one of these methods preferable to the other from an overall design standpoint? Method A makes things simpler for me since I don't have to make every method accept an input, but I'd like to be sure that I'm not overlooking anything.
Thanks!