Can someone tell me how a class constant should be defined? Is it okay to have a constant defined in the same file that it is used? Or should all constants be in a class by themselves?
posted 10 years ago
As usual, it depends on the situation. Some constants are values that you are allowed to pass into a particular method. Then it makes sense for the class that has the method to also have the constants. Some constants are used all over the system. Then it makes sense to make them more global in their own class.
It's a neat goal to have only one reason to change a class. That steers you away from a single class with all the constants in the system because it would have many reasons to change.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi