L05: Polymorphic Hierarchy

L05: Polymorphic Hierarchy

University

8 Qs

quiz-placeholder

Similar activities

Imágenes en Bootstrap y CSS

Imágenes en Bootstrap y CSS

University

10 Qs

Unidad 4 - Usando el Java API Library

Unidad 4 - Usando el Java API Library

University

10 Qs

Programación Parcial 1

Programación Parcial 1

University

11 Qs

Manejo de erroes

Manejo de erroes

University

11 Qs

AP Programación 2°

AP Programación 2°

4th Grade - University

10 Qs

Fundamentos y Condicionales en Python - ALIANZA2025

Fundamentos y Condicionales en Python - ALIANZA2025

11th Grade - University

12 Qs

Patrón Bridge

Patrón Bridge

University

10 Qs

Patrones de Diseño

Patrones de Diseño

University

12 Qs

L05: Polymorphic Hierarchy

L05: Polymorphic Hierarchy

Assessment

Quiz

Computers

University

Medium

Created by

FIUBA iii

Used 24+ times

FREE Resource

8 questions

Show all answers

1.

MULTIPLE CHOICE QUESTION

45 sec • 1 pt

¿Cómo suele implementar Bobby los métodos en la superclase de una jerarquía polimórfica?

Enviando un mensaje a cada subclase

No los implementa

Utilizando polimorfismo

Con self subclassResponsibility o algo simple

Answer explanation

Menciona que a veces retorna "self" o pone una implementación default no disruptiva.

Consejo: "self subclassResponsability" o, si estamos bastante seguros, una implementación default puede ser una buena opción para evitar código repetido.

2.

MULTIPLE CHOICE QUESTION

45 sec • 1 pt

¿Que hace Bobby cuando se enfrenta con una pieza de código poco clara?

Deja comentarios en el código

Extrae esa parte a un método aparte cuyo nombre clarifica el asunto

Elimina esa pieza de código

Sigue con lo suyo, ya que no le importa demasiado que el código sea claro

Answer explanation

Cualquier solución en código siempre es superadora a una con comentarios, porque lo primero es algo vivo, que se ejecuta, que es refactorizable, etc y por ende con menor riesgo de quedar viejo.

3.

MULTIPLE CHOICE QUESTION

45 sec • 1 pt

¿De qué manera y con qué frecuencia suele Bobby dividir las descripciones de los métodos que escribe?

Siempre detalla el CÓMO (los detalles de implementación) y a veces el QUÉ

El QUÉ lo explica siempre y el CÓMO sólo cuando no se entiende el código por si solo

El QUÉ lo explica siempre y a veces el POR QUÉ, contando en este último las decisiones de diseño que tomó

El QUÉ a veces y el CUANDO siempre, para no olvidarse en qué momento hizo los últimos cambios

Answer explanation

Ojo acá con el tema de que los comentarios tiene un costo de mantenimiento... comentarios obsoletos pueden ser más perjucidiales que no comentar nada.

Lo mejor es que el código sea tan claro que no sea necesario comentarlo. Aunque a veces, un comentario a nivel clase o algún método en particular, donde es imposible que un nombre sintetice el qué, suma.

4.

MULTIPLE CHOICE QUESTION

45 sec • 1 pt

¿Cual fue una de las cosas que mas le costó aprender a Bobby sobre Smalltalk?

Entender que las subclases no se usan para evitar repetir código sino más bien como distintas especializaciones de la superclase

No heredar de clases concretas

Entender que no está bueno crear clases para cosas que podrían ser objetos (sobre-diseñar)

Aprender el concepto de Template Class

Answer explanation

No heredar de clases concretas y no crear clases para cosas que podrían ser objetos son buenos consejos, pero no figuran en el paper.

5.

MULTIPLE CHOICE QUESTION

45 sec • 1 pt

Dos métodos son realmente polimórficos cuando...

Tienen el mismo nombre

Tienen el mismo nombre y misma cantidad y tipo de parámetros

Tienen el mismo nombre, misma cantidad y tipo de parámetros y devuelven el mismo tipo de resultado

Tienen el mismo nombre, misma cantidad y tipo de parámetros, mismo tipo de resultado y se comportan del mismo modo

Answer explanation

Como ya discutimos, no alcanza con sólo considerar nombre, parámetros y resultado, sino importa también que tengan el comportamiento. Bobby menciona por ejemplo que tengan los mismos "efectos secundarios".

6.

MULTIPLE CHOICE QUESTION

45 sec • 1 pt

¿En qué casos puedo intercambiar un objeto por otro?

Cuando ambos hereden de Object

Cuando ambos pertenecen a una misma jerarquía de clases

Cuando ambos comparten la misma interfaz polimórfica

Cuando ambos comparten una misma interfaz polimórfica base (la que vaya a utilizar el colaborador)

Answer explanation

Con que compartan los mismos mensajes que utiliza el objeto que nos está enviando mensajes, alcanza. No es necesario que tengan ambos la misma interfaz por completo.

7.

MULTIPLE CHOICE QUESTION

45 sec • 1 pt

¿Que hace Bobby cuando encuentra que dos clases con implementaciones polimórficas pero no hay una superclase común específica?

Crea una clase concreta con una implementación común a ambas clases, y borra estas dos últimas

Crea una nueva clase abstracta y subclasifica las 2 clases a partir de esta

No hace nada, ya que no es necesario subclasificar para tener polimorfismo en Smalltalk

Ninguna de las anteriores

Answer explanation

Este es un punto de algo que difiere con lo que aconsejamos en la cátedra. Si bien es muy deseable encontrar jerarquías polimórficas, hay que tener cuidado no estar subclasificando por algo más bien accidental o colateral, ya que luego perderemos extensibilidad en el modelo.

8.

MULTIPLE SELECT QUESTION

45 sec • 1 pt

¿Que enseñanzas importantes nos deja el paper?

Los modelos con jerarquías polifórficas resultan en modelos flexibles, extensibles y más simples

Para poder tener polimorfismo es necesario que dos clases pertenezcan a la misma jerarquía

Conviene que mis jerarquías tengan superclases que sean abstractas

Mientras más comentado esté nuestro código, mejor