miércoles, agosto 03, 2011

Effective Java: Creating and destroying objects

En el capítulo dos del libro Effective Java se tratan los temas relacionados con la creación y destrucción de objetos. Es un capítulo bastante básico donde explica que hay que usar Boolean.TRUE en lugar de new Boolean(true) y que nunca hagas un new String("ejemplo").
Podemos destacar dos puntos de este capítulo:
  • A partir de Java 5.0 la mejor forma de crear un singleton es usando un Enum:
public enum Elvis {

INSTANCE;

public void leaveTheBuilding() { ... }
}
  • Cuando tenemos un constructor con muchos parámetros algunos de ellos obligatorios y otros opcionales, la mejor opción es crear un Builder:
// Builder Pattern

public class NutritionFacts {
private final int servingSize;
private final int servings;
private final int calories;
private final int fat;
private final int sodium;
private final int carbohydrate;

public static class Builder {
// Required parameters
private final int servingSize;
private final int servings;
// Optional parameters - initialized to default values
private int calories = 0;
private int fat = 0;
private int carbohydrate = 0;
private int sodium = 0;

public Builder(int servingSize, int servings) {
this.servingSize = servingSize;
this.servings = servings;
}

public Builder calories(int val)
{ calories = val; return this; }
public Builder fat(int val)
{ fat = val; return this; }
public Builder carbohydrate(int val)
{ carbohydrate = val; return this; }
public Builder sodium(int val)
{ sodium = val; return this; }

public NutritionFacts build() {
return new NutritionFacts(this);
}
}

private NutritionFacts(Builder builder) {
servingSize = builder.servingSize;
servings = builder.servings;
calories = builder.calories;
fat = builder.fat;
sodium = builder.sodium;
carbohydrate = builder.carbohydrate;
}
}

No hay comentarios:

Publicar un comentario