Padrão Factory

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.