Estou com uma dúvida de implementação deste padrão. Tenho uma classe pessoa e outras subclasses, como funcionário e aluno. E cada uma destas subclasses têm no mínimo dois construtores com suas implementações. Como implemento isto neste padrão? Já fiz algo parecido, mas as classes só têm o construtor padrão sem parâmetros. A minha dúvida é de como implementar com construtores com parâmetros.
Algo assim?
[code]public class Pessoa {
}
public interface PessoaFactory {
public Pessoa makePessoa();
}
public class PessoaTipo1 extends Pessoa {
public PessoaTipo1(String parametro) {
}
}
public class Tipo1PessoaFactory implements PessoaFactory {
public Pessoa makePessoa() {
return new PessoaTipo1(“abc”);
}
}[/code]
PessoaFactory factory = new Tipo1PessoaFactory();
Pessoa pessoa = factory.makePessoa();
Mas onde passo o parâmetro no momento de criação do objeto?
Mas onde passo o parâmetro no momento de criação do objeto?
E se a classe Pessoa tiver várias implementações de construtores?
Exemplo:
class Pessoa{
Pessoa(int codigo){
}
Pessoa(int codigo, String nome){
}
}
Qualquer solução que for colocada aqui sem ter os requisitos do que você espera das “Pessoas” é mera especulação. Talvez você não precise de factories, nem de herança e talvez nem mesmo o sistema.