DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Fórum DevMedia


Autor
Mensagem
Infomachine
 

País: Brasil
Estado: ES
Cidade: Santa Teresa
Mensagens: 5
 Postado em: 31/3/2011 8:33:30 AM

Aceito sugestão diversas a respeito deste tema,
Anthony Accioly
 
 


País: Brasil
Estado: SP
Cidade: São Paulo
Mensagens: 157
 Postado em: 31/3/2011 4:14:05 PM
Sendo extremamente pragmático, a vantagem é $$$ hehehe (ok, agora voltando para o mundo acadêmico que é o que importa).
As principais vantagens são:
Menor gap Semântico - http://pt.wikipedia.org/wiki/Fosso_semântico. É mais fácil pensar em objetos do que em funções / procedimentos pois objetos estão mais próximos ao mundo real.
Maior reaproveitamento de código: Componentes bem modularizados com funções bem definidas servindo a propósitos claros e delimitados (alta coesão) podem ser reaproveitados, significando menos código (e conseqüentemente, menor custo de manutenção). A orientação a objetos trás vários recursos para produzir componentes independentes intercambiáveis  (encapsulamento, interfaces, etc), promovendo o baixo acoplamento.


---

Quanto ao polimorfismo, o conceito é que você pode pode ter vários facetas mostrandoapenas aquilo que seja necessário (nível de abstração / especialização) em determinado momento. Também é possível pensar do lado oposto, que cada faceta pode especializar alguma de suas funções, mudando o comportamento mais abstrato:

Explico com um exemplo: 
Eu sou uma pessoa (duh!)
Também sou um programador, que é um tipo de pessoa (geralmente cheio de neuroses). 
Em orientação a objetos eu poderia, por exemplo, me programar como
Pessoa p = new Programador("Anthony Accioly", ...);
Ou seja, eu sou uma Pessoa que é um Programador. 
Quando eu vou no supermercado não preciso expor minha faceta de programador, afinal ela não é útil na situação (pelo contrário, confundiria as pessoas). Assim, estou representando uma faceta mais genérica do que sou.

Por outro lado, em um fórum como o da DeMedia, eu posso discutir sobre orientação a objetos. Em outros fóruns eu poderia ter uma ação genérica de pessoa (tipo, comentários do Youtube), porém, aqui preciso fazer comentários mais especializados.
Então voltando ao tipo pessoa, vamos pensar que ela tem um método "falar()" que retorna um monte de abobrinhas. O programador, que é um tipo especializado de pessoa, pode "sobrescrever" o método "falar()" para retornar abobrinhas técnicas. Se ele quiser, o resto do mundo pode continuar o vendo como uma Pessoa, porém, ao interagir com seu método "comentar()" o programador tem uma função própria mais especializada. 
Deu para ilustrar o conceito? 

 
Luciano Fischer Lumertz
 

País: Brasil
Estado: RS
Cidade: Cachoeirinha
Mensagens: 21
 Postado em: 30/6/2011 8:33:34 PM
A maior vantagem da orientação a objetos é a facilidade de manutenção do sistema (quando OO é aplicado corretamente). Mais tem como desvantagem um maior tempo para desenvolvimento. Levantar um sistema orientado a objetos dá um pouco mais de trabalho que um procedural.

Deixando claro que esta é minha opinião de acordo com minha experiência. Fiquem livres para concordar ou discordar.

 
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03