| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 12:42:05
|
andrestrindade
JavaTeenager
![[Avatar]](/images/avatar/6220d78a81df90871ed5d07ad6023bf7.jpg)
Membro desde: 01/09/2008 14:06:23
Mensagens: 150
Offline
|
Pessoal, tenho uma dúvida bem simples.
Não costumo utilizar classes abstratas, contudo tenho uma classe em meu sistema que faz operações de CRUD, e é o que preciso.
Porém, o meu CRUD não terá exclusão, gostaria de utilizar todos métodos da classe abstrata que tem operações de CRUD sem implementar o método de exclusão.
Pergunta:
Há como eu fazer isso, sem criar o método de exclusão e deixa-lo "em branco" - ou mesmo transformar minha classe em abstrata e criar outra classe que utiliza esta extends a classe que criei?
Obrigado.
|
Quanto mais aprendo, percebo a vasta gama de conhecimentos que ainda não possuo. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 12:49:06
|
InsaneChess
JavaTeenager
![[Avatar]](/images/avatar/aaf00ecab185d81021300866bdfa4760.jpg)
Membro desde: 22/04/2010 23:02:42
Mensagens: 194
Localização: São Paulo, SP
Offline
|
Implemente a classe abstrata de CRUD.
Porém na implementação deixe o método de exclusão em branco e de preferencia com um comentário curto e objetivo sobre o por quê não foi implementado exclusão nele.
|
MSN: diogo_chess@hotmail.com
Vamos estudar Java!!! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 12:50:57
|
andrestrindade
JavaTeenager
![[Avatar]](/images/avatar/6220d78a81df90871ed5d07ad6023bf7.jpg)
Membro desde: 01/09/2008 14:06:23
Mensagens: 150
Offline
|
Olá, a pergunta foi se há utilizar a classe abstrata sem fazer isso - não é desejável deixar o "lixo" na classe, o método em branco!
Obrigado
|
Quanto mais aprendo, percebo a vasta gama de conhecimentos que ainda não possuo. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 12:51:24
|
nel
JWizard
![[Avatar]](/images/avatar/1a9537e58dcb1a9913e1fc10c65c7994.jpg)
Membro desde: 01/10/2009 13:51:10
Mensagens: 2364
Offline
|
O basico de um CRUD é, "Buscar, Editar, Criar e Remover". Se não precisa do remover e tem sua classe abstrata, vejo duas alternativas:
- Não coloca nenhum tipo de implementação no excluir da classe filha
- Declara o método excluir sem que ela seja abstrato (não recomendo)
|
"Se houver a terceira guerra mundial eu não sei como será mas a quarta será com paus e pedras" Albert Einsten. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 13:14:31
|
x@ndy
Virtual Machine Man
![[Avatar]](/images/avatar/2a777aa4f210aa4cb06ee3bc682c19a0.png)
Membro desde: 07/01/2011 12:39:32
Mensagens: 554
Localização: Porto Alegre
Offline
|
andrestrindade wrote:Olá, a pergunta foi se há utilizar a classe abstrata sem fazer isso - não é desejável deixar o "lixo" na classe, o método em branco!
Obrigado
Não tem como. Você é obrigado a fazer isso!
Outra coisa isso não é deixar lixo! Recomendo que você leia o livro Use a Cabeça - Padrões de Projeto!
Nesses casos você pode fazer como os colegas falaram e deixar o método em branco ou levantar uma exeção (UnsupportedOperationException) o que eu recomendo.
Você vai se deparar em muitos casos com isso. Se você, por exemplo, implementar o padrão State, fazer esse tipo de operação é obrigatório. Então não pense que você está fazendo algo errado.
|
Software e Tecnologia:http://tekhton.blogspot.com
"Um software desprovido de contexto na base do seu design é, na melhor das hipóteses, um mecanismo que realiza coisas úteis sem explicar suas ações" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 13:19:19
|
jroberto.nsc
JavaChild
![[Avatar]](/images/avatar/0646cf9a05bc84082bf1aa92fcb54fc2.jpg)
Membro desde: 26/11/2009 12:28:34
Mensagens: 140
Localização: Goiânia
Offline
|
Estenda da Classe Abstrata é sobrescreva os métodos que deseja.
|
[ José Roberto Alves do Nascimento ]
Oracle Certified Professional Java SE 6 Programmer
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 13:21:25
|
InsaneChess
JavaTeenager
![[Avatar]](/images/avatar/aaf00ecab185d81021300866bdfa4760.jpg)
Membro desde: 22/04/2010 23:02:42
Mensagens: 194
Localização: São Paulo, SP
Offline
|
Outra coisa que esqueci de dizer...além de deixar a implementação do remover em branco, use uma Interface no lugar dessa classe abstrata. É melhor
|
MSN: diogo_chess@hotmail.com
Vamos estudar Java!!! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/02/2012 13:21:45
|
peerless
GUJ Master
![[Avatar]](/images/avatar/5b2a8f2b014bb326fd82ee313704e78c.jpg)
Membro desde: 22/01/2007 14:52:26
Mensagens: 1391
Localização: Porto Alegre / RS
Offline
|
Interfaces estao aih para isso.
Porém, na hora de instanciar, tu faz:
Esta é uma das formas elegantes de resolver questoes como essa.
|
follow me
pitacos
"The most problems that teams face are about communication, and all the others are too." - Dan North
|
|
|
 |
|
|