Carlos Rocha Posted June 12, 2015 at 09:51 PM Report #584745 Posted June 12, 2015 at 09:51 PM 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?
crislanio_macedo Posted June 15, 2015 at 01:35 AM Report #584810 Posted June 15, 2015 at 01:35 AM 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
Carlos Rocha Posted June 15, 2015 at 10:48 AM Author Report #584824 Posted June 15, 2015 at 10:48 AM Sim, É String
HappyHippyHippo Posted June 15, 2015 at 10:56 AM Report #584825 Posted June 15, 2015 at 10:56 AM ou tornar tudo muito mais simples - Class Pessoa - Class Cliente extends Pessoa - Class Funcionario extends Cliente IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Carlos Rocha Posted June 15, 2015 at 01:19 PM Author Report #584830 Posted June 15, 2015 at 01:19 PM 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 ??
HappyHippyHippo Posted June 15, 2015 at 03:55 PM Report #584839 Posted June 15, 2015 at 03:55 PM 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 Portugol Plus
Carlos Rocha Posted June 15, 2015 at 10:02 PM Author Report #584857 Posted June 15, 2015 at 10:02 PM 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!
HappyHippyHippo Posted June 15, 2015 at 10:20 PM Report #584858 Posted June 15, 2015 at 10:20 PM 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 Portugol Plus
crislanio_macedo Posted June 16, 2015 at 02:21 AM Report #584863 Posted June 16, 2015 at 02:21 AM Você faz uma classe Funcionário extends Pessoa, Cliente é uma Pessoa. no controller faz-se algo como (caso trabalhe com MVC). você faz os mapeamentos necessários. https://github.com/crislanio/LivrariaDoJoao/ Vê-se o exemplo abaixo.
Carlos Rocha Posted June 16, 2015 at 11:44 AM Author Report #584876 Posted June 16, 2015 at 11:44 AM 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!
HappyHippyHippo Posted June 16, 2015 at 11:48 AM Report #584877 Posted June 16, 2015 at 11:48 AM 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 Portugol Plus
Carlos Rocha Posted June 16, 2015 at 11:53 AM Author Report #584879 Posted June 16, 2015 at 11:53 AM 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!
HappyHippyHippo Posted June 16, 2015 at 12:48 PM Report #584880 Posted June 16, 2015 at 12:48 PM 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 Portugol Plus
Carlos Rocha Posted June 16, 2015 at 01:37 PM Author Report #584884 Posted June 16, 2015 at 01:37 PM 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?
HappyHippyHippo Posted June 16, 2015 at 02:01 PM Report #584886 Posted June 16, 2015 at 02:01 PM 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 Portugol Plus
Carlos Rocha Posted June 16, 2015 at 07:31 PM Author Report #584915 Posted June 16, 2015 at 07:31 PM 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?
HappyHippyHippo Posted June 16, 2015 at 07:34 PM Report #584918 Posted June 16, 2015 at 07:34 PM é assim que se resolve o problema IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
apintocr Posted June 18, 2015 at 11:19 PM Report #585069 Posted June 18, 2015 at 11:19 PM 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...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now