Boa noite! Sobre o exercício aonde se deve implementar o Flyweight com uma Factory.
O construtor static abaixo é essencial para o Flyweight?
static{
notas.put("do", new Do() );
notas.put("re", new Re());
notas.put("mi", new Mi());
notas.put("fa", new Fa());
notas.put("sol", new Sol());
notas.put("la", new La());
notas.put("si", new Si());
}
Implementei da forma abaixo:
package fliegengewicht02;
import java.util.HashMap;
import java.util.Map;
public class NotasMusicais {
private static Map<String,Nota>notas = new HashMap<String,Nota>();
public Nota pega(String nome){
if(notas.get(nome)==null){
FactoryDeNotas fabricanotas=new FactoryDeNotas(nome);
notas.put(nome, fabricanotas.getNotaMusical());
}
return notas.get(nome);
}
}
Mas, vi a implementação da Opinião do Professor e vi que está bem diferente. Então, reptido a pergunta: a parte static{...} é essencial para esse padrão de projetos?
Obrigado!