I really doubt where to store the constants according to a good programming design.
Situation ---------- Here is my situation. i have an email address and my application has an email functionality to send out the email using this email address.
Right now, this email address is used in only one place.
1. Can i store this email address in the code file where i am using? 2. Can i have one common code file to have all the constants used by the application? 3. Can i have a table called 'key_values' table which will store values in an array list format eg: Key Value ------------------------------- email_addr email@example.com sender_role admin,user,guest
While the three options you mention are all possibilities, for configuration options that rarely (if ever) change -like email addresses- I'd use a properties file, and make its contents available to all classes of an application. That could happen either through a static method in some class, or through a config object that each class has access to.