The problem with these declarative methods is always leaving the object in a incomplete state. I prefer factory methods with private constructor myself. Hide the instance, so that immutable object tricks can be used, but still use descritive function names. Plus if you're using generics you can use the limited type inference that java has. Do you prefer new Tuple<Int,Int>(a,b);
or Tuples.pair(a,b) ?
The problem with these declarative methods is always leaving the object in a incomplete state. I prefer factory methods with private constructor myself. Hide the instance, so that immutable object tricks can be used, but still use descritive function names. Plus if you're using generics you can use the limited type inference that java has. Do you prefer new Tuple<Int,Int>(a,b); or Tuples.pair(a,b) ?
--paulo 12:20, 10 November 2008 (CET)