Duvida com abstração Pessoa, PessoaFisica, PessoaJuridica, Cliente em um sistema imobiliario

6 respostas
emersonsoares

Pessoal estou modelando um sistema para imobiliaria, onde tenho as seguintes condições:

-Um cliente deve ser uma pessoa.
-Um cliente pode ser uma pessoa fisica ou juridica.
-Um cliente pode ser tanto um locador como um locatario.
-O locatario pode ser um locador também e vice versa.

Bem a parte da modelagem que tá pegando é essa, não sei como fazer, a principio, tenho uma classe Pessoa, e mais uma classe PessoaFisica e PessoaJuridica ambas herdando a classe Pessoa, mas não sei como faria a parte do cliente, pois ele pode ser ou juridica como fisica. E ai, alguma sujestão para essa modelagem ?

6 Respostas

icarocd

Para não ter restrição tão forte, faça mais uso de composição! Há situações que composição é mais recomendado, outras herança, e vice-versa.

E

Cliente não precisa ser um Domínio em si

Ex: quando você for cadastrar um cliente, instancia um objeto do tipo locatário que este pode ser PF ou PJ

juno.rr

Sugestão:

Pessoa
--------------------------
  |                      |
PessoaFisica     PessoaJuridica
--------------     -----------------
  |                      |
LocatarioPF        LocatarioPJ
-------------        -------------
  |                      |
LocadorPF          LocadorPJ

Mas isso depende muito das propriedades que teriam Locador e Locatario.
Você poderia também ter Locatário/Locador como uma interface.

emersonsoares

juno.rr:
Sugestão:

Pessoa
--------------------------
  |                      |
PessoaFisica     PessoaJuridica
--------------     -----------------
  |                      |
LocatarioPF        LocatarioPJ
-------------        -------------
  |                      |
LocadorPF          LocadorPJ

Mas isso depende muito das propriedades que teriam Locador e Locatario.
Você poderia também ter Locatário/Locador como uma interface.

Um cliente podera terá varios imoveis associados a ele, tera imovéis como ele sendo proprietario(no caso ele sera locatario), e podera ter imoveis com ele sendo o locador, como ficaria isso ?

heatcold

Classes:
Cliente

  • nome : String
  • imoveisLocator : List
  • imoveisLocatario : List

PessoaFisica

  • CPF

PessoaJuririca

  • CNPJ

Imovel

  • proprietario - Cliente
  • locator - Cliente

Relacionamentos:
Cliente HAS-A Imovel (1 - *)

PessoaFisica IS-A Cliente

PessoaJuridica IS-A Cliente

emersonsoares

heatcold:
Classes:
Cliente

  • nome : String
  • imoveisLocator : List
  • imoveisLocatario : List

PessoaFisica

  • CPF

PessoaJuririca

  • CNPJ

Imovel

  • proprietario - Cliente
  • locator - Cliente

Relacionamentos:
Cliente HAS-A Imovel (1 - *)

PessoaFisica IS-A Cliente

PessoaJuridica IS-A Cliente

Resolvido com a sua sugestão, ficou assim:

--------- Pessoa
-------------- Cliente
------------------- ClientePessoaFisica
------------------- ClientePessoaJuridica

E o cliente podera ter uma lista de imoveis proprietarios, e uma lista de imoveis alugados.

Obrigado pessoal!

Criado 6 de fevereiro de 2012
Ultima resposta 6 de fev. de 2012
Respostas 6
Participantes 5