Abstract Factory

Olá pessoal!

Estou montando um sistema em java no qual trabalharei com muitas classes,
mas em especial, eu queria uma ajuda particular nessa parte de Pessoa (Física ou Jurídica) e Fornecedor:

Situações do meu sistema:

  1. Cliente e Fornecedor podem ser Pessoa (Física ou Jurídica).
  2. Fornecedor tem campos específicos mesmo sendo uma Pessoa (Física ou Jurídica).

Tenho o livro do Gof e li sobre os pedrões AbstractFactory e o FactoryMethod e fiz
esse diagrama mas não encontrei uma maneira correta de associar meu Cliente e meu Fornecedor nele,
pelo menos até o presente momento.

Perguntas:
1 - Estou montando meu diagrama da maneira correta?
2 - Como incluir meu Cliente e meu Fornecedor de forma a deixar meu sistema corretamente flexível?

Fico bastante grato a todos pela ajuda.

Cara, acho que era mais facil só haver um método createPessoa na sua classe abstrata, no qual vc passaria um parametro pessoa. Se Não vc vai ter que a toda hora que criar um novo tipo de pessoa, criar um novo método abstrato na sua classe abstrata, e tendo que implementá-los…
Também de uma olhada no padrão prototype (acho que é esse o nome) que aborda justamente a construção de métodos de forma organizada.

De uma lida nos doís tópicos abaixo e tente rever sua modelagem.

Modelagem Pessoa Fisica/Pessoa Juridica
Melhor forma de modelar/programar cliente, fornecedor e pessoa