Jump to content

Recommended Posts

Posted

Olá pessoal, gostaria de saber como me comportar diante do seguinte quadro em Herança.

Class Pessoa

Class Funcionario extends Pessoa

Class Cliente extends Pessoa

Funcionário quer ser cliente! Quer poder comprar! E agora?

Como representar isso?

Não deve ser coerente ter dois cadastros para a mesma Pessoa!

Um Cliente e um Funcionário.

Nesse caso, o que fazer?

Posted

HappyHippyHippo,

Mas é este o problema.

Não posso fazer isso pois aí não terei separação entre os objetos.

Todos serão pessoas.

Ah? Funcionário extends Cliente? rsssrsrs

É brincadeira né? Terei 2 classes funcioário?

Funcionário extends Cliente

Funcionário extends Pessoa

??

Posted

HappyHippyHippo,

Mas é este o problema.

Não posso fazer isso pois aí não terei separação entre os objetos.

Todos serão pessoas.

e um funcionário não é uma pessoa ?

e um cliente não é uma pessoa ?

separação entre os objectos ? epa, se não sabes não é uma coisa, agora dizer disparates por achares que sabes é outra ...

IRC : sim, é algo que ainda existe >> #p@p
Posted

Sim amigo. Mas não compreendi direito.

Não estou relutando. Apenas tentando entender com outras perguntas. Só isso!

O que acontece no mundo java é que as pessoas acham que os iniciante já chegam no fórum sabendo uns 75% de tudo.

Quando saem perguntas simples eles se assustam!

Mas o brigado pelas respostas!

Posted

eu não assumi que sabias 75%, da mesma forma que não te respondi : "basta derivar a classe Funcionário da classe pretendida" (isso sim era esperar um pouco mais do que a resposta que te foi dada:

- Class Pessoa

- Class Cliente extends Pessoa

- Class Funcionario extends Cliente

se não percebes, então faz as perguntas relevantes à tua questão ao contrário do que fazer afirmações como fizeste de imediato:

HappyHippyHippo,

Mas é este o problema.

Não posso fazer isso pois aí não terei separação entre os objetos.

IRC : sim, é algo que ainda existe >> #p@p
Posted

Ok.

Mas se

Class Funcionario extends Cliente

e não

Class Funcionario extends Pessoa

Quando na verdade Funcionário "é uma" pessoa e será um cliente apenas quando quizer fazer uma compra como fica o caso de quando o Funcionário for agir apenas como funcionário?

Entendi o que você disse.

Você disse que se Funcionário e Clientes "são uma Pessoa", logo, Funcionário pode "ser um" Cliente.

Mas quando fizer

Class Funcionario extends Cliente

O que fazer com os métodos e atributos que estão em Cliente mas que NÃO fazem parte da abstração de Funcionário?

Entendeu a dúvida?

Entendeu porque estou peguntado se eu teria 2 classes Funcionário uma extendendo de Pessoa e outra extendendo de Cliente?

Posted

Vale o que vale mas...

Pessoalmente considero errado a solução apresentada.

- um cliente pode ser um funcionário.

- um funcionário pode ser um cliente.

- um cliente NÃO tem de ser funcionario.

- um funcionário NÃO tem de ser cliente.

- cliente e funcionário podem ser a mesma entidade.

- uma entidade é uma pessoa.

Reduzindo e simplificando acho mais correcto adicionar um atributo "roles" (que possa aceitar carios valores) e controlar o que cada caso pode fazer (um "role" será cliente, funcionário, gerente, etc); este controlo deve ser realizado com base em:

if USER has ROLE {

do this

}

Espero ter ajudado...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.