Tengo una biblioteca de terceros con la que estoy interactuando usando un patrón de fachada. Ahora, tengo un requisito adicional de que la biblioteca de terceros se puede cambiar fácilmente (no en tiempo de ejecución), por lo que la fachada debe poder manejar esto.

Cuál sería la mejor forma de hacer esto?

2
Marty Wallace 20 may. 2012 a las 15:15

1 respuesta

La mejor respuesta

Sugiero crear Facade que necesita ser una interfaz (o clase abstracta, cualquiera que sea el idioma que uses) con varias implementaciones. Cada implementación es una biblioteca de terceros que envuelve una fachada de hormigón:

UML diagram

Con tecnología de yuml.me

4
Tomasz Nurkiewicz 20 may. 2012 a las 15:51
Buena presentación, ¿te importa que te pregunte cómo hiciste el gráfico?
 – 
Brady
20 may. 2012 a las 15:43
- ¿En qué parte de este diseño vería el interruptor para decidir qué fachada usar? Hay un cliente que puede utilizar cualquiera de estas fachadas. ¿Esperaría ver algún tipo de método de fábrica en el cliente o sería tan simple como usar una constante de clase para definir qué cara debe usarse o un valor de configuración en un archivo xml, etc.?
 – 
Marty Wallace
20 may. 2012 a las 22:39
@ user1189880: todas sus sugerencias son válidas. Puede utilizar una opción de configuración de fábrica, configuración XML. Si está utilizando algún tipo de inyección de dependencia, este es un caso típico. Técnicamente, incluso puede cambiar de fachada en tiempo de ejecución.
 – 
Tomasz Nurkiewicz
20 may. 2012 a las 22:46