Tengo un componente que necesita llamar a un servicio específico dependiendo de la entrada que recibe. Entonces, mi componente tiene que mirar la entrada y en función de una configuración que dice "para esta entrada, llame a este servicio con esta información" necesita llamar al servicio adecuado. Los servicios tienen un método de firma común y uno específico (cada uno).¿Hay un patrón de diseño para esto?
Pensé en una clase abstracta que incluye las firmas para los tres métodos. La implementación de los dos servicios anulará los tres métodos (arrojando NotImplementedException
para los métodos que no son compatibles con el servicio actual). También se definirá un componente que podría inicializarse con un mapa (que para cada tipo de entrada tendrá el tipo de servicio a ser llamado).
¿Tiene un mejor enfoque para hacer frente a este escenario?
Pensé (etiquetado) sobre el DP de fábrica, pero en este caso tiene que combinarse con algún otro patrón, para ser "configurable". Estaba pidiendo un enfoque existente de esta manera. – ytrewq
Además, esto podría asociarse con el patrón de agrupación Singleton o Object – ytrewq
. La fachada o el patrón del adaptador pueden ser dignos de considerar al permitir alguna configuración, creo. –