| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2004 09:25:29
|
tRuNkSnEt
JavaGuru
Membro desde: 16/08/2003 03:16:25
Mensagens: 245
Offline
|
Estava estudando Programação orientado a objeto mais claramente engenharia de softwares orientado a objetos e cheguei a algumas duvidas.
Tudos os livros que li fala das vantagens (principalmente reuso) mas nao consegui observar alguns pontos! Se alguem puder responder agradeço desde ja!
Todos sabem que a engenharia de softwares orientado a obejtos tem suas grandes vantagens, principalmente reuso, mas quais são suas falhas,Desvantagens??
Um obejto composto se implementa atraves de Polimorfismo (ou sobrecarga de metodos)?
Alguem poderia passar algum link que contem sintaxe para troca de mensagens entre objetos!!
ex: Mensagem [ObjetoReceptor,OperaçãoIncluirVenda, {Produto, Valor}];
Mensagem [OBjetoEmissor, {Venda Incluida}];
Tem uma parte da O.O. que fala em reestruturação de hierarquia de classes, que diferença tem em usar isso?? (overriding, acho que é assim que escreve)
Qual outras linguagens alem de Java Utiliza O.O.?
Nossa quanta duvida devo ser nebam mesmo .
Beijunda e desde Já Agradeço!
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2004 09:54:47
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
tRuNkSnEt wrote: Qual outras linguagens alem de Java Utiliza O.O.?
Smaltalk, C++, ...
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2004 10:18:23
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Cara, acho que vc esta desesperadamente precisando aprender Smalltalk
Editado:
Alias, esqueca Smalltalk. Tente dar uma olhada no Python assim que tiver um tempinho, e (item obrigatorio) veja a Io:
http://www.iolanguage.com
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2004 10:22:06
|
Jair Rillo Junior
Moderador
![[Avatar]](/images/avatar/31b3b31a1c2f8a370206f111127c0dbd.jpg)
Membro desde: 29/04/2003 21:19:53
Mensagens: 2524
Localização: São Paulo / Campinas
Offline
|
Bom dar minhas opiniões sobre o assunto.
A falha que eu acredito que seja a maior, é quando os princípios da OOP não são utilizadas corretamente, assim invés de facilitar, organizar e reutilizar códigos, você acaba escrevendo códigos repetidos, várias classes, monte de sujeira que fica uma loucura pra dar manutenção (eu já programei assim, quem nunca fez essas coisas? ).
A OOP não é 100% perfeita para todos os casos, existem algumas funcionalidades que a OOP não cobre ou seja muito dificil de implementar usando apenas ela, e nesse ponto que entra a AOP (Programação orientada a Aspecto), um exemplo clássico é a geração de logs.
A troca de mensagens são feitas através dos métodos que estão na interface do objeto, ou seja, aqueles que podem ser acessíveis pelos outros objetos. Um exemplo seria um Bean em java, onde seus atributos são privates e os métodos getters e setters são públicos. As trocas de mensagens são feitas através desses métodos públicos.
Sobre o objeto composto eu não entendi muito bem sua pergunta, mas eu entendo objeto composto por métodos de outros objetos, e assim a herança de classes entra em ação.
O Daniel já deu exemplos de outras linguagens que utilizam OO, agora uma outra (não me atirem pedras), é o C# da plataforma .NET
|
Jair Rillo Junior
http://www.jairrillo.com/blog | Twitter | SCJA, SCJP, SCWCD, SCBCD, IBM SOA Associate |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2004 10:25:48
|
TedLoprao
Virtual Machine Man
![[Avatar]](/images/avatar/c8604bc33f4c112715031.jpg)
Membro desde: 09/05/2003 00:32:03
Mensagens: 607
Offline
|
cv wrote:Cara, acho que vc esta desesperadamente precisando aprender Smalltalk
Editado:
Alias, esqueca Smalltalk. Tente dar uma olhada no Python assim que tiver um tempinho, e (item obrigatorio) veja a Io:
http://www.iolanguage.com
Caramba cv, de onde tu tira essas linguagens???
|
Rodrigo Klein
----------------------------------------------------
Java is the best |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/06/2004 10:32:21
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
tRuNkSnEt wrote:
 Todos sabem que a engenharia de softwares orientado a obejtos tem suas grandes vantagens, principalmente reuso, mas quais são suas falhas,Desvantagens??
Gostei da respsota do Manchester
Hoje temos compiladores muito bons, ams não perfeitos. Geralmente OO aidna é mais lento, mas assim como como procedural é mais lento que Assembly, que é mais lento que linguagem de máquina, assim como JVM é mais lento que VM do SO, essas coisas... nada que valha a pena se preocupar num abiente moderno.
tRuNkSnEt wrote:
 Um obejto composto se implementa atraves de Polimorfismo (ou sobrecarga de metodos)?
Um objeto composto é formado de outros objetos. Considere um...ahhmm... Computador. O objeto compotador tem um objeto CPU, objeto MemoriaPrincipal, etc. Tudo faz aprte do objeto Computador, ok?
tRuNkSnEt wrote:
 Alguem poderia passar algum link que contem sintaxe para troca de mensagens entre objetos!!
ex: Mensagem [ObjetoReceptor,OperaçãoIncluirVenda, {Produto, Valor}];
Mensagem [OBjetoEmissor, {Venda Incluida}];
Acho qeu já responderam, não é?
tRuNkSnEt wrote:
 Tem uma parte da O.O. que fala em reestruturação de hierarquia de classes, que diferença tem em usar isso?? (overriding, acho que é assim que escreve)
Com sobrescrita de método, você pode alterar como os métodos herdados são executados. Se sua superclasse tinha uma implementação de um método que não te servia, você escreve seu próprio e coloca no lugar deste.
tRuNkSnEt wrote:
 Qual outras linguagens alem de Java Utiliza O.O.?
Respondida também, não?
Uma dica: comece com programação OO, não com análise, design ou a própria 'engenharia de software' em si. É estranho dizer a um futuro engenheiro que sua primeira aula é levantar um muro, mas assim você pega melhor os conceitos....
[]s
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/06/2004 10:36:32
|
tRuNkSnEt
JavaGuru
Membro desde: 16/08/2003 03:16:25
Mensagens: 245
Offline
|
Aew galera, Brigado pelas dicas, analisei todas as respostas e chequei em alguns livros. Esta claro as ideias agora.
Brigado
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/05/2005 13:18:12
|
Operador Nabla
JavaBaby
![[Avatar]](/images/avatar/339a18def9898dd60a634b2ad8fbbd58.png)
Membro desde: 23/02/2004 04:22:27
Mensagens: 98
Offline
|
Eu ia criar um tópico novo para expor a minha questão, mas, depois de fazer uma pequena busca no fórum, achei melhor "ressuscitar" este tópico aqui.
Minha questão é sobre "Paradigma OO versus linguagens script". Uma dificuldade que venho enfrentando com linguagens script orientadas a objetos (na verdade, só com Python, embora haja dificuldades similares em Ruby e Smalltalk, pelo que eu tenho lido), tem a ver com as regras de visibilidade de métodos e atributos (public, protected, private).
Aparentemente, nessas linguagens script, as regras de visibilidade ou parecem não existir, ou são implementadas de maneira limitada. Por exemplo, em Python, um atributo cujo nome começa com dois _'s comporta-se, de maneira limitada, como um atributo privado (na prática, classe.__atributo é convertido para classe._classe__atributo, de modo que ele pode ser acessado --- e modificado --- diretamente por este último nome).
Inclusive, pelo que eu tenho observado, alguns programadores destas linguagens manifestam verdadeiro repúdio às regras de visibilidade, dizendo que são "frescura de programador C++ e/ou Java". Mas, se não estou errado, regras de visibilidade estão previstas no próprio paradigma OO, não sendo particularidades de C++ ou Java.
Eu até aceitaria a justificativa de que o fato dessas linguagens serem dinamicamente tipadas dificultaria a implementação de regras de visibilidade.
Gostaria de saber a opinião de vocês. Seria realmente complicado implementar regras de visibilidade em linguagens script? Ou será que isso realmente não seria interessante para tais linguagens, como defendem alguns dos seus "programadores afetos"?
Também gostaria de um esclarecimento: regras de visibilidade estão previstas no paradigma OO?
This message was edited 2 times. Last update was at 08/05/2005 14:41:48
|
"Vocação: cada um semeie com a sua, colham-se os frutos para todos." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/05/2005 14:04:44
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
As regras de visibilidade de Ruby sao praticamente iguais as do Java (a diferenca eh que nao tem "default", mas tem public, protected e private, e eles funcionam mais ou menos do mesmo jeito que em Java).
Se voce me perguntar se uma linguagem OO precisa de regras de visibilidade, a resposta eh nao... mas que ajuda, ajuda
O intuito todo eh forcar o encapsulamento, mas se a equipe nao vai fazer besteira, restricao de acesso eh claramente opcional - e essa eh a ideia do pessoal do Python e Smalltalk.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/05/2005 10:23:23
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
complementando: comof alei aqui algumnas vezes, regras de visibilidade são para poupar quem escreve a classe cliente de detalhes inúteis a ele, não são nem sequer para segurança
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
|
|
|
|