Search Header Logo

L05: Polymorphic Hierarchy

Authored by FIUBA iii

Computers

University

Used 24+ times

L05: Polymorphic Hierarchy
AI

AI Actions

Add similar questions

Adjust reading levels

Convert to real-world scenario

Translate activity

More...

    Content View

    Student View

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.

Access all questions and much more by creating a free account

Create resources

Host any resource

Get auto-graded reports

Google

Continue with Google

Email

Continue with Email

Classlink

Continue with Classlink

Clever

Continue with Clever

or continue with

Microsoft

Microsoft

Apple

Apple

Others

Others

Already have an account?