Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
Estou com uma dúvida para criar uma classe, o que parece besteira, mas para quem esta começando na orientação a objetos....
No meu sistema, vou ter cadastros de Empresas (Padaria, Escritórios de Advocacia, Fornecedores) e cadastro de pessoas (Proprietários de Empresas, Advogados e Representantes de Fornecedores).
o que pensei foi o seguinte (Exemplo):
Classe PessoaJuridica
-codigo
-razao
-nomefantasia
-endereço
-telefone
Classe Padaria extends PessoaJuridica
-tipoatividade
-mensalidade
-funcionarios
Classe PessoaFisica
-codigo
-nome
-datanascimento
-rg
-telefone
Classe Advogado extends PessoaFisica
-areaAtuação
Qual a melhor forma de construir essas classes utilizando herança?
Gabriel,
Obrigado pela sua resposta.
Esse sistema tem como objetivo principal controlar o cadastro de padarias. Segue abaixo mais detalhes:
PADARIAS
PESSOA JURÍDICA - Cadastros de Padarias (Principal)
PESSOA FÍSICA - Cadastros de proprietários de padaria
Uma padaria possui um ou mais donos.
PESSOA JURÍDICA - Cadastros de Contabilidades
Contabilidade presta serviço para padaria, portanto, cadastro padaria deve informa sua contabilidade.
_________________________________________________
ESCRITÓRIOS DE ADVOCACIA
PESSOA JURÍDICA - Cadastros de escritórios
PESSOA FÍSICA - Cadastros de advogados
Um escritório possui um ou mais advogados.
_________________________________________
FORNECEDORES
PESSOA JURÍDICA - Cadastros de fornecedores
PESSOA FÍSICA - Cadastros de representantes
Um fornecedor possui um ou mais representantes.
Meu sistema precisa fazer este controle.
O seu caso é um dos que eu mais tive dúvida desde a minha aprendizagem. Existe um problema na definição do direito sobre as Pessoas e essa definição prejudica um pouco a abordagem que seria interessante seguir.
Segundo o direito, existe o conceito de Pessoa e uma pessoa pode tanto ser uma pessoa física ou jurídica.
Todo ser humano brasileiro (sim, tem que ser brasileiro) é uma Pessoa Física. Já uma Pessoa Jurídica, pode ser um conjunto de Pessoas Físicas ou bens criados de acordo com a lei.
Teoricamente, uma pessoa não pode ser "ambas" (Física e Jurídica ao mesmo tempo) mas toda a Pessoa Jurídica possui uma Pessoa Física como representante legal.
Ou seja:
Olhando somente a lei, essas são as partes que forma o "pacote/package" Pessoa. Entretanto, não adianta você criar um pacote perfeito, se só irá utilizar 10% dele.
Normalmente, no caso de PessoaFisica <-> PessoaJuridica, você pode abstrair os pontos em comum da pessoa em uma classes base Pessoa (endereço, contatos).
Outro pontos a considerar é se você tem a necessidade de ter um responsável legal pela Pessoa Jurídica. Se há essa necessidade, toda Pessoa Jurídica deve ter como associação uma Pessoa Física.
No caso de um Advogado, prefiro utilizar a composição ou até em casos mais específicos o padrão Decorator, pois uma mesma Pessoa Física pode não ser apenas um Advogado, pode ser muitas outras coisas.
Veja eu por exemplo, eu sou:
No momento que você usa herança, um objeto está preso a uma instância e não é possível adicionar novas responsabilidades em tempo de execução sem ter que criar uma nova instância.
Depois de toda essa leitura/escrita, é importante você ressaltar qual é a necessidade do seu sistema, o que ele precisa controlar e qual a integridade que você deve manter.