Font size
WorksheetsL07: Null Object Pattern
Total questions: 8
Worksheet time: 5mins
El patron Null-Object consiste en:
Modelar un objeto que responda cualquier mensaje con null
Modelar un objeto que se instancia al recibir null como respuesta del envío de un mensaje
Modelar un objeto que actúa de forma polimórfica respecto a otro objeto del modelo y para los mismos mensajes no realiza acciones.
Modelar un objeto que actua polimorficamente respecto de null
¿Que problema trae la utilización de null, y null-object busca solucionar?
Genera lentitud en la ejecución del programa.
La utilización de null incrementa la cohesión
Hay una tendencia de las grandes empresas a no utilizar null en sus desarrollos.
No se puede tratar a null de forma polimórfica respecto a los objetos que normalmente participan en una colaboración .
El patron null-object es tambien conocido como:
Active nothing
Singleton
Nullthing
Strategy
AbstractObject
Elegí las 2 afirmaciones que consideres verdaderas.
En el modelo de objetos puede haber más de una clase de objeto nulo
El patrón null-object se utiliza únicamente para reemplazar null
Un objeto nulo se convierte en un objeto real continuamente
En una colaboración un objeto nulo puede reemplazar a un objeto real.
Elegir las opciones por las cuales se suele aplicar null-object
Cuando se requiere a una clase abstracta responder null para uno de sus mensajes
Cuando colaboran objetos con distinto comportamiento
alguna de las instancias que colaboran no debe hacer nada.
Se desea ignorar la diferencia entre tratar con un colaborador que tiene comportamiento y uno que hace nada.
En el paper se nombra un patrón similar pero con diferencia respecto de null-object. Ese patrón del que se lo diferencia es:
Stub
Proxy
Active Nothing
Double-dispatch
En la implementacion de este patron, puede ser necesario que el modelo del objeto que realiza la colaboración se expanda a 3 clases como se ve en la imagen. Para simplificar esta jerarquía ¿que otra forma se menciona?
Utilizando double-dispatch
Una instancia especializada del objeto real
Con el patrón de diseño command factory.
Utilizando singleton
Indicá 2 de las siguientes consecuencias que Null-object trae:
Se simplifica el código del lado del cliente
En fácil de implementar aunque no se esté de acuerdo en como "hacer nada" en varios lugares.
Un objeto nulo nunca se convierte en un objeto real
Dificulta la reutilización del código de “no hacer nada” de null-object.
