Código: flyweight e fábrica
class TipoLocalFlyweight {
private final String categoria;
private final String cor;
private final String icone;
}
class TipoLocalFactory {
private static final Map<String, TipoLocalFlyweight> tipos = new HashMap<>();
public static TipoLocalFlyweight obter(String categoria, String cor, String icone) {
String chave = categoria + ":" + cor + ":" + icone;
tipos.putIfAbsent(chave, new TipoLocalFlyweight(categoria, cor, icone));
return tipos.get(chave);
}
}