Jump to content
carcleo

Funcionário quer ser cliente

Recommended Posts

carcleo

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?

Share this post


Link to post
Share on other sites
crislanio_macedo

Você faz dois formulários para cadastrar o cliente e o funcionário, ai você no controller você irá verificar qual o tipo de pessoa é, se é cliente ou funcionário.

Caso esteja trabalhando com Spring por exemplo,poderei exemplificar o seu exemplo.

Att

Share this post


Link to post
Share on other sites
HappyHippyHippo

ou tornar tudo muito mais simples

- Class Pessoa

- Class Cliente extends Pessoa

- Class Funcionario extends Cliente


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

Share this post


Link to post
Share on other sites
carcleo

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

??

Share this post


Link to post
Share on other sites
HappyHippyHippo

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

Share this post


Link to post
Share on other sites
carcleo

Funcionário extends Cliente?

Cliente pode ter métodos que não tem em Pessoa. E ai?

Mesmo assim eu faço:

Funcionário extends Cliente

Não entendi!

Share this post


Link to post
Share on other sites
HappyHippyHippo

olha bem para a tua pergunta : se um funcionário quer ser cliente então a resposta é imediata : terá de estender a classe Cliente.

não sei porque andas ai com rodeios


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

Share this post


Link to post
Share on other sites
carcleo

A dúvida é outra amigão:

Terei 2 classes funcionário?

Funcionário extends Cliente

Funcionário extends Pessoa

??

Não estou com rodeios não. Apenas pedindo a opinião de alguém que sabe bem mais que eu!

Só isso!

Share this post


Link to post
Share on other sites
HappyHippyHippo

Não estou com rodeios não. Apenas pedindo a opinião de alguém que sabe bem mais que eu!

opinião que foi dada directa e sem complicações, da qual apresentas relutância em aceitar.


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

Share this post


Link to post
Share on other sites
carcleo

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!

Share this post


Link to post
Share on other sites
HappyHippyHippo

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

Share this post


Link to post
Share on other sites
carcleo

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?

Share this post


Link to post
Share on other sites
HappyHippyHippo

qual o problema de um funcionário ter os métodos de uma cliente ?

nomeio um (1) método que um funcionário não pode derivar de cliente ?


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

Share this post


Link to post
Share on other sites
carcleo

Acho que estou te entendendo agora!

Mas só para ter certeza. Isso não é uma boa prática não! Ou é assim mesmo que se resolve esse problema?

Share this post


Link to post
Share on other sites
apintocr

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...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • 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.