2012-02-20 22 views
7

Estoy trabajando en el tema de los patrones de diseño. En este caso quiero para implementar el patrón de diseño 'Fachada'Diseño de patrón "Fachada"

Sé que 'Cocoa Touch' nos ofrece soluciones completas para la aplicación de patrones de diseño en nuestros proyectos (por ejemplo NSNotificationCenter - implementa el patrón de diseño observador)

Mis preguntas son las siguientes: - ¿tenemos la capacidad de utilizar el patrón de diseño 'Fachada', así como en el caso del modelo de diseño del observador.

Ahora aplicar 'Fachada' como esto:

Por ejemplo, tengo algunas clases que implementa algunos cálculos. La clase 'Fachada' combina todas las clases que necesitaba para los cálculos.

Por ejemplo, tengo las clases A, B, C y Fachada (que contienen clases A, B y C).

Cuando quiero calcular algo, simplemente creo mi 'Fachada' y paso algún argumento para el cálculo. En este caso, no sé sobre las clases A, B, C y este objeto Fachada me proporciona un solo punto de acceso.

Este patrón de diseño encapsula objetos y simplifica la aplicación.

¿Es correcta la implementación?

Respuesta

7

Otro buen ejemplo para implementar el patrón de fachada: servicio de llamada de pizza. Por ejemplo, el servicio de pizza (subsistema) es muy grande y consta de tres departamentos (interfaces): departamento de pedidos, departamento de descuentos, departamento de entregas. Cada departamento tiene su propia lógica e interfaces. Simplemente puede implementar el patrón de fachada en él. Here este ejemplo en más detalles.

+0

muchas gracias buen ejemplo! –

1

La motivación detrás del patrón de fachada es proporcionar una interfaz simplificada para casos de uso frecuente, al tiempo que se adapta la capacidad de superar la interfaz simplificada e interactuar con aspectos más complejos de las clases detrás de la fachada cuando sea necesario. Como ya describió su implementación, parece ajustarse a la descripción, y no hay ninguna razón por la que no pueda usar un patrón de fachada en combinación con un patrón de notificación/observador ...

4

Es la explicación correcta (no veo implementación). La buena asociación con el patrón Fachada en la vida real es el control remoto: puede ejecutar funciones de TV, DVD, etc.

+0

gracias por la respuesta! me gusta ejemplo (me refiero a tv y dvd) –

7

Una fachada se define como una interfaz unificada para un conjunto de interfaces, una especie de interfaz de nivel superior para reducir la complejidad. En lugar de tratar con varias clases y conocer las API de cada una, se reduce a la fachada. Tu explicación me parece bien.