Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Teoria Ventajas y Desventajas
Autor Mensaje
osk Sin conexión
Empleado de Fotocopiadora
Viendo que pasa...
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 28
Agradecimientos dados: 37
Agradecimientos: 2 en 2 posts
Registro en: Sep 2008
Mensaje: #1
Teoria Ventajas y Desventajas Dudas y recomendaciones Paradigmas de Programación
Buenas tarder gente,

Rendi el final (MAL), de paradigmas el sábado pasado (01/12/2012) y la verdad tengo algunas dudas sobre como responder a ciertas preguntas.

Ej: En uno de los ejercicios, habia que hacer 2 soluciones en Objetos (Una con solucion polimorfica y otra sin utilizar polimorfismo).

El tema es que además, habia que decir VENTAJAS - DESVENTAJAS de utilizar polimorfismo y VENTAJAS - DESVENTAJAS de no utilizar polimorfismo.

Como ventaja en usar polimorfismo, respondi que obejtos sin importar la clase que sean, comprenden el mismo mensaje sin importan como cada uno lo resuelve (supongo que esto es correcto, sino haganmelo saber) y como ventaja, no supe como justificarlo.

Desventaja de no utilizar polimorfismo, es que al generalizar clases, la superclase, tiene 1 mensaje por cada subclase para la misma finalidad (esto no se si esta bien), pero no encontre ventaja.

Bien, si alguien pudiera explicar justamente este punto, se lo voy a agradecer (Ventajas y desventajas de utilizar polimorfismo y Ventajas y desventajas de no utilizar polimorfismo).

Mil Gracias.
Salu2 a To2.
Oscar.
03-12-2012 15:22
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nicmora Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 7
Agradecimientos dados: 3
Agradecimientos: 0 en 0 posts
Registro en: Dec 2012
Mensaje: #2
RE: Teoria Ventajas y Desventajas
Que tal! Estoy resolviendo este final porque quería practicar para rendir el sábado 15. Me quedé en esa parte también. Te digo lo que hice:
Con Polimorfismo:
#Zoo
>>animalesAdaptados
^self animales allSatisfy:[:anim | anim adaptado]

#Mono
>>adaptado
^self comida = 'nutritiva'
#Jirafa
>>adaptado
^(self peso > 500) & (self comida = 'balanceada')
#Leon
>>adaptado
^self comida = 'natural'

Sin polimorfismo

#Zoo
>>animalesAdaptados
^self monos allSatisfy:[:mono | mono comidaNut] & self jirafas allSatisfy:[:jiraf | jiraf pesoYComida] & self leones allSatisfy:[:leon | leon comidaNat].

... Por cada especie desarrollo el método como el de arriba pero con distintos selectores (nombre del mensaje).
(acá tengo una duda, porque no se si es sin polimorfismo para todos los animasles sin importar que sean de la misma especie (es decir, que un mono no sea polimorfico con otro), o que no sean polimorficos entre especies (que es lo que hice)).

Ventajas polimorfismo:
Como bien dijiste, tengo a todos los animales en una coleccion y todos entienden el mismo mensaje sin importar como lo resuelvan. También agregaría que para el observador (el que usa los objetos polimórficos), hay que escribir menos códigos.
Desventajas polimorfismo:
Hasta el momento no se me ocurrió.

Ventajas sin polimorfismo:
Tampoco se me ocurrió.
Desventajas sin polimorfismo:
Hay que escribir más códigos para el objeto observador. Tengo que tener separadas las especies y hay que mandarle un mensaje a cada una con distintos selectores (No me deja utilizar la Herencia, si tengo una superClase Animal)...

Si encuentro alguna ventaja/desventaja de lo que no puse respondo. Escucho ofertas jaja.

Saludos! Espero que te sirva.
(Este mensaje fue modificado por última vez en: 14-12-2012 17:03 por nicmora.)
14-12-2012 16:45
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rod77 Sin conexión
Presidente del CEIT
:o
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.164
Agradecimientos dados: 154
Agradecimientos: 498 en 217 posts
Registro en: Mar 2011
Mensaje: #3
RE: Teoria Ventajas y Desventajas
A mi tampoco me salio eso.
Después todo lo demás lo resolví acá:
http://www.utnianos.com.ar/foro/tema-ped...#pid279133
14-12-2012 16:51
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
clariallende Sin conexión
Empleado del buffet
j'aime pas trop les voleurs et...
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 9
Agradecimientos dados: 8
Agradecimientos: 7 en 2 posts
Registro en: Dec 2011
Mensaje: #4
RE: Teoria Ventajas y Desventajas
Hola a todos! Les voy contestando de a poquito...

osk la justificación que esperamos no va por el lado de la herencia, que es lo que estás diciendo vos. Tranquilamente podrías resolver el requerimiento sin usar herencia. Las ventajas de una solución polimórfica pasan por la mantenibilidad, la extensibilidad... O sea, si vos tenés varios objetos que son distintos entre sí (a.k.a tienen distinto comportamiento) pero que los podés usar a todos de la misma manera, en primer lugar tenés una abstracción (el mensaje #seAdapta, ponele) que podés reutilizar. En segundo lugar, si tenés que agregar más animales, lo único que hacés es definir ese mensaje en la clase correspondiente, y lo demás no cambia. Si no tuvieras polimorfismo, lo más probable es que caigas en hacer ifs horrendos donde usas strings o preguntás por la clase del animal, para tomar vos una decisión... y eso no escala, si querés agregar más tenes que hacer más ifs, y probablemente no sea el único lugar donde vayas a tener que tomar una decisión basandote en el tipo de animal.
Entonces, ahí deberías preguntarte, y si todo esto depende del animal ¿por qué decido yo? ¿por que no le pregunto al animal y ya? Y que queda uno lo maneje como corresponda ---> voilà! Polimorfismo =)

Ahora, como desventaja, el uso de polimorfismo tiene un poco mas de complejidad, en el sentido que para saber que pasa tengo que pasar por más objetos, porque las responsabilidades están repartidas... Respecto al if, está todo en un solo lado (todo junto y re acoplado, pero en un solo lado).


nicmora, una de las posibles soluciones sin polimorfismo es tener distintas colecciones, una para cada tipo de animal. Eso está bien.
Ahora, MUCHO CUIDADO, no es que no hay polimorfismo solo porque no entienden el mismo mensaje. No hay polimorfismo porque vos no los estás tratando indistintamente, porque están todos separados...
Respecto al polimorfismo entre especies... es entre esas especies distintas. Recuerden que polimorfismo = muchas formas, ergo, tienen que ser objetos distintos (de clases distintas)... un mono es polimórfico con otro mono? Y no, es la misma cosa xD O sea, entienden los mismos mensajes porque son instancia de la misma clase, pero el chiste del polimorfismo es justamente usar indistintamente a cosas que no son del mismo "tipo".

Bien las ventajas de polimorfismo, pero se pueden decir más cosas pensando en extensibilidad y mantenibilidad, como dije más arriba.
Respecto a las desventajas de no usar polimorfismo, no sé si hay que escribir más código. Tampoco se si es una buena métrica para decidir ir por una solución o por otra. Yo creo que está más copado hablar de delegación, responsabilidad, mantenibilidad, extensibilidad... duplicación de código (ahí podrían hablar de herencia, pero como ya dije no es necesaria en esa parte del requerimiento)... Se podría hablar de cantidad de código si van por la opción de hacer ifTrue:, en esta solución con distintas colecciones... meh. Los mensajes en cada calse de animal los tenés que escribir igual =P

Para todos:

El polimorfismo tiene tres partes:
1) Los objetos polimórficos
2) El mensaje o mensajes para los cuales son polimórficos (esto es re importante y lo pasan por alto)
3) El tercero que los usa polimórficamente --> Esto también es importante, si no hay un tercero que los use indistintamente, no hay polimorfismo (podríamos decir que los objetos son "potencialmente polimórficos")

vuelvo a remarcar, la justificación que esperamos en un final es en términos de extensibilidad, mantenibilidad, delegación, responsabilidad, declaratividad, etc etc y todas esas cosas que se supone que ya les hinchamos tanto en la cursada que las deberían re contra re saber ^^
Nada, eso. Cualquier cosa, pregunten en la lista, de casualidad estaba buscando un apunte para economía y caí acá y les contesto =)
Digo, para que no se queden con la duda, en la lista de pdep seguro alguien les contesta al toque =D

Saludos, y espero que les sirva =)
18-12-2012 12:32
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] clariallende recibio 6 Gracias por este post
guilleg1988 (18-12-2012), osk (18-12-2012), ramiro99 (19-12-2012), gonnza (21-12-2012), CarooLina (13-02-2013), rovila (20-02-2013)
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)