How does one usually make a Factory choose between multiple Impl classes?

I need to make a Factory choose between multiple Impl classes and I would like to know what the best practice is for this? How does one typically pass the data from a class to the ImplFactory in order to choose the appropriate Impl for that class while still maintaining good design principles?

--
I would prefer a thoughtful conceptual answer. No quick posting or links please.
EindoofusAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

CEHJCommented:
The best practice would probably be

a. use a configuration file
b. put the name of the impl class in it
c. make the factory load it

That way, no recompilation is necessary in order to change impl

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
CEHJCommented:
If that seems like overkill (could be for just one class) then the following is good
java -Dimpl.class=foo.bar.SomeImpl YourApp

Open in new window

EindoofusAuthor Commented:
Could you please elaborate a bit more on "b" and "c"? I'm having a hard time understanding them. If you have any code as an example I would greatly appreciate it.
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

CEHJCommented:
I'm going to abandon my first suggestion if favour of my second - unless you have several classes that have to be selected
EindoofusAuthor Commented:
1:
java -Dimpl.class=foo.bar.SomeImpl YourApp

Open in new window


I'm not sure if we are on the same page. Can you please take a look at my other question to see what I am doing:

http://www.experts-exchange.com/Programming/Misc/Q_27390758.html


CEHJCommented:
:)
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Programming

From novice to tech pro — start learning today.