es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué el patrón de proxy utiliza la clase realSubject en lugar de componer la interfaz Subject?

Los dos patrones UML extraídos del libro “Design Patterns Elements of Reusable Object-Oriented Software” se enumeran a continuación:

Patrón Proxy UML:

Imagen del patrón Proxy UML

Patrón Decorator UML:

Imagen del patrón Decorator UML

Mi pregunta es ¿por qué el patrón Proxy utiliza la clase “realSubject” en lugar de componer la interfaz “Subject” como lo hace el patrón Decorator?

Tags:  

Answer

  1. Avatar for davy.ai

    El patrón Proxy utiliza la clase realSubject porque actúa como un sustituto del objeto real y controla el acceso a él. Se utiliza el patrón Proxy cuando crear un objeto resulta costoso y se desea limitar su instanciación hasta que realmente sea necesario. En este escenario, crear una instancia del realSubject de antemano y luego pasarla al proxy iría en contra del propósito de limitar la instanciación.

    Por otro lado, el patrón Decorator compone la interfaz Subject porque agrega funcionalidad adicional a un objeto sin cambiar su estructura subyacente. El patrón Decorator no limita la instanciación de objetos y permite la adición dinámica de nuevos comportamientos a un objeto. Esto se logra pasando el objeto base al decorador, el cual luego agrega el nuevo comportamiento implementando la misma interfaz.

    En resumen, la diferencia entre los patrones Proxy y Decorator radica en el propósito e intención de cada uno. El patrón Proxy se utiliza para controlar el acceso y limitar la instanciación, mientras que el patrón Decorator se utiliza para agregar dinámicamente nueva funcionalidad a un objeto sin cambiar su estructura subyacente.

Comments are closed.