| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2011 13:22:13
|
gadriano
Thread.start()
Membro desde: 06/01/2011 13:01:05
Mensagens: 27
Localização: Curitiba - PR
Offline
|
Daí adriano_si tudo bele?,
O desaconselho da Herança é um grande erro, desaconselham porque não entenderam a herança,
a herança te dá muita produtividade e diminui grandemente a complexidade dos sistemas, não tem que
ser desaconselhada em nenhuma linguagem, tem que ser usada porque é um GRANDE benefício, faça uma
analogia com a vida real, imagine se grande parte das coisas que você precisasse na vida vc pudesse pegar
PRONTA e funcionando do teu pai (ancestral), tipo assim o carro, o imóvel, quanto temos que ralar pra conseguir
essas coisas caras da vida? entendeu, isso é a herança na programação, vc usa os métodos prontos do repositório
do ancestral, isso sim é reusabilidade de código.
|
Desenvolvedor de sistemas |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/04/2011 07:04:10
|
Longino
JavaGuru
Membro desde: 22/01/2011 10:08:43
Mensagens: 235
Offline
|
Orientação à objetos é facílimo. O que demorou mais tempo para eu aprender foi que nem tudo é um objeto, e OO assim como no Java é uma burrice que leva muitos programadores a cometerem barbaridades (vide frameworks, ORM, etc).
Se desenvolvedores Java descobrissem que nem tudo precisa ser um objeto as nossas vidas seriam muito melhores.
This message was edited 3 times. Last update was at 24/04/2011 07:05:12
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2011 15:21:53
|
adriano_si
JWizard
![[Avatar]](/images/avatar/4f9ef38edcfc460a00cbb8ed5dee299c.jpg)
Membro desde: 01/10/2006 15:29:40
Mensagens: 2047
Offline
|
Opa... blz galera, vejo que a discussão rendeu...
Bom, primeiro, gostaria que refletissem com uma leitura:
http://alexandrebm.com/composicao-em-ruby-com-forwardable
Só pra não ficar na cabeça que o conceito é um preconceito de quem usa Java... Vamos lá... Conceitos surgem e desaparecem, se renovam, se modificam, geram conflitos e muitas vezes até guerra. Porém, conceitos nascem com um Objetivo de ajudar toda e qualquer pessoa a ter sua vida facilitada. Ví que a Orientação a Objetos gerou uma certa polêmica aqui, aparecendo inclusive declarações inflamadas sobre o uso ou não da mesma. Vou dar o "MEU", repito "MEU" ponto de vista sobre a questão.
Para mim que tenho 5 anos de carreira, 2 em Java, confesso que ainda to aprendendo bastante coisas e não é qualquer coisitasinha dita em algum Blog ou Fórum que me convence de determinados temas. OO foi um deles, percebo que quando um Framework, Linguagem ou até mesmo ferramenta, surge no mercado, quer dizer que das 2 uma:
1 - Ou o que tem hoje não satisfaz completamente a necessidade;
2 - Ou o criador quer melhorar a idéia para atender as suas necessidades;
Por isso o termo reinventar a roda é tão bem aceito no meio da comunidade... Não precisamos reinventar a roda, mas precisamos aperfeiçoá-la.
A roda de hoje com certeza não é a mesma da idade da pedra, ela ganhou formas, espessuras e até tamanhos diferentes para atenderem às mais diversas necessidades.
Vejo que a OO foi mais uma dessas tentativas, de pessoas com muita experiência no mercado que apanhavam bonito para padronizar e manter seus códigos e Projetos de acordo com esse padrão. É a verdade absoluta do mercado ??? Não sei, mas é o que se aproxima de algo que veio pra facilitar e ajudar a manter o foco.
Quando alguém diz "Prefira composição à Herança", ele não está dizendo pra nunca se usar Herança, mas sim que a maioria dos Problemas que hoje são resolvidos com Herança, seriam mais facilmente resolvidos com Composição, enquanto voxê resolve algo com Herança e reaproveita código, eu posso fazer uma composição e reaproveitar um Objeto... enfim, possibilidades e mais possibilidades... Não sei sua experiência de mercado e se a Herança realmente resolve os seus problemas, mas no meu caso, o conceito de "preferir composição à Herança" tem resolvido os meus...
Espero ter ajudado no meu ponto de vista.
Já você Longino, sua afirmação está certíssima, nem tudo pode ser um Objeto, para algumas coisas precisamos fazer chover pra transformar o Conceito em um modelo OO. À propósito (é curiosidade mesmo) você trabalha no comércio ???
Abs []
|
"É preciso ter mais fé pra acreditar que viemos do nada..."
Blog - http://aohana.wordpress.com/
Padrão de nomenclatura Java - http://www.oracle.com/technetwork/java/codeconventions-139411.html#16712
Doc. Java - http://www.oracle.com/technetwork/java/javase/documentation/index.html
Faça perguntas Inteligentes - http://istf.com.br/perguntas
Sobrevivência no GUJ:
(Regras) http://www.guj.com.br/java/21516-regras-do-forum
(Boa prática) http://www.guj.com.br/java/15477-antes-de-voce-perguntar
(Código fonte) http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2011 17:03:54
|
Longino
JavaGuru
Membro desde: 22/01/2011 10:08:43
Mensagens: 235
Offline
|
adriano_si wrote:À propósito (é curiosidade mesmo) você trabalha no comércio ???
Não, não trabalho.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2011 17:46:16
|
adriano_si
JWizard
![[Avatar]](/images/avatar/4f9ef38edcfc460a00cbb8ed5dee299c.jpg)
Membro desde: 01/10/2006 15:29:40
Mensagens: 2047
Offline
|
Área Acadêmica ???
|
"É preciso ter mais fé pra acreditar que viemos do nada..."
Blog - http://aohana.wordpress.com/
Padrão de nomenclatura Java - http://www.oracle.com/technetwork/java/codeconventions-139411.html#16712
Doc. Java - http://www.oracle.com/technetwork/java/javase/documentation/index.html
Faça perguntas Inteligentes - http://istf.com.br/perguntas
Sobrevivência no GUJ:
(Regras) http://www.guj.com.br/java/21516-regras-do-forum
(Boa prática) http://www.guj.com.br/java/15477-antes-de-voce-perguntar
(Código fonte) http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/06/2011 17:40:49
|
pgnt
Debugger
![[Avatar]](/images/avatar/4c6ec11e967c21b14b970b16579cdf13.png)
Membro desde: 18/01/2007 04:27:33
Mensagens: 57
Offline
|
Olás
Acompanhei os tópicos, juntando o que li/aprendi aqui com minha experiência, vejam este caso de quando usar INTERFACE ou HERANÇA.
Vamos pegar com base aquele exemplo dos aniamais do ViniGodoy (muito bom por sinal, parabéns!).
Imaginem que temos o seguinte grupo de animais domésticos
cachorro
gato
porco da índia
Agora, pegamos duas ações (métodos) relacionadas a eles: "fazerBarulho()" e "dormir()".
dormir()
-----------------------
Todos dormem da mesma forma, então neste caso HERANÇA é melhor que INTERFACE pois podemos implementar "dormir()" na classe mãe tendo o REAPROVEITAMENTO DO CÓDIGO em todas suas classes filhas.
fazerBarulho()
-----------------------
Cada aniamal faz o seu (latir, miar, grunir). Usar herança aqui vai resultar em sempre ter que sobrescrever o método nas classes filhas e, além de não reaproveitar o código, ainda temos o efeito colateral do acoplamento.
Neste caso, INTERFACE é melhor que HERANÇA pois podemos garantir que todo animal implementará o método mas de forma desacoplada, podendo inclusive ter mais interfaces associadas futuramente.
Aí vem a questão:
Concordam que para implementar esses dois métodos da melhor maneira no nosso design, precisaríamos utilizar INTERFACE E HERANÇA?
abs
This message was edited 4 times. Last update was at 04/06/2011 04:05:40
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/06/2011 09:45:18
|
adriano_si
JWizard
![[Avatar]](/images/avatar/4f9ef38edcfc460a00cbb8ed5dee299c.jpg)
Membro desde: 01/10/2006 15:29:40
Mensagens: 2047
Offline
|
pgnt wrote:Aí vem a questão:
Concordam que para implementar esses dois métodos da melhor maneira no nosso design, precisaríamos utilizar INTERFACE E HERANÇA?
abs
em Java, Bastaria a Herança com uma classe Abstrata... Mas nesse caso... em um outro exemplo talvez as 2 fossem realmente válidas...
Abs []
|
"É preciso ter mais fé pra acreditar que viemos do nada..."
Blog - http://aohana.wordpress.com/
Padrão de nomenclatura Java - http://www.oracle.com/technetwork/java/codeconventions-139411.html#16712
Doc. Java - http://www.oracle.com/technetwork/java/javase/documentation/index.html
Faça perguntas Inteligentes - http://istf.com.br/perguntas
Sobrevivência no GUJ:
(Regras) http://www.guj.com.br/java/21516-regras-do-forum
(Boa prática) http://www.guj.com.br/java/15477-antes-de-voce-perguntar
(Código fonte) http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/06/2011 09:55:13
|
CarlosEduardoDantas
GUJ Master
![[Avatar]](/images/avatar/dc33e31c39c141adff52d67a0718b867.jpg)
Membro desde: 13/11/2006 15:26:38
Mensagens: 1089
Offline
|
A maior dificuldade que tive no começo foi em saber aplicar os conceitos de POO em projetos reais.
Aprender a encapsular ao invés de switch-case, alta coesão, baixo acoplamento, deixar entidades menos anêmicas, isolar responsabilidade em classes, etc.. et.c.. etc..
|
'Nós somos o que repetidamente fazemos. Excelência, então, não é um ato, mas um hábito'.
Aristóteles.
carloseduardoxp |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/06/2011 18:32:31
|
pgnt
Debugger
![[Avatar]](/images/avatar/4c6ec11e967c21b14b970b16579cdf13.png)
Membro desde: 18/01/2007 04:27:33
Mensagens: 57
Offline
|
adriano_si, bem observado, uma classe abstrata resolveria. Estava tentando pensar em algum caso que envolvesse interface.. talvez um método "brincar()" que pudesse ser alterado em tempo de execução por ex... mas a idéia no geral é trazer que dependendo do caso uma coisa pode ser melhor que outra ou, o uso das duas chega a ser necessário para o melhor design.
abs
This message was edited 1 time. Last update was at 06/06/2011 18:35:43
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 03:15:17
|
windsofhell
GUJ Master
Membro desde: 15/06/2007 08:31:17
Mensagens: 1687
Localização: Stockholm - Sweden
Offline
|
Quando eu nao estou em casa eu tenho dificuldade em poo, mas eh soh tomar uma laxante. :)
//Daniel
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 06:27:33
|
fantomas
GUJ Master
![[Avatar]](/images/avatar/a2bf57c3aee957f2aaf75aa84717b3be.jpg)
Membro desde: 24/04/2008 16:10:55
Mensagens: 1534
Localização: Terra (maior parte do tempo)
Offline
|
Daniel wrote:Quando eu nao estou em casa eu tenho dificuldade em poo, mas eh soh tomar uma laxante.
KKKKKKKKKKKK!
flws
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2011 12:49:37
|
vovodojava
HelloWorld
Membro desde: 19/05/2011 12:38:59
Mensagens: 14
Offline
|
Polimorfismo com certeza, só consegui entender quando precisei utilizar na prática!
|
|
|
 |
|
|