On Sun, 2008-09-28 at 07:54 -0500, Mark Volkmann wrote:
How are constants represented in Smalltalk? Do you create a method whose name is the name of the constant and return the value?
You have several ways to define something you could call "constant". If we see a constant as a global accessible thing that doesn't change and has something like a name you have multiple options:
- #myConstant Symbol. That is globally available and is always the same object.
- a class. A class is an object with a name that is globally accessible and gives the same object everytime
- cached instances. You define class methods that create instances and cache the instances. This way you get the same object everytime you invoke the class method
I think there even more possibilities. What you should use depends on what you are trying to achieve. A symbol is just the name. A class serves this purpose quite well for a lot scenarios. But you don't want to create classes only because you need some constant value.
Norbert