traducir tag significa que name español oop design-patterns naming-conventions facade

oop - tag - ¿Cuál es un buen nombre para una clase de fachada?



que es name tag instagram (4)

Un poco de historia: estamos construyendo una biblioteca / marco para trabajar con modelos científicos. Tenemos un Model interfaz que define las operaciones que debe implementar un modelo, que es bastante mínimo. Es decir: la interfaz del Model define el contrato de un modelo desde el punto de vista de un implementador de modelos .

El marco agrega un montón de otras funcionalidades en torno al modelo, pero ahora el código del cliente tiene que acceder a esa funcionalidad mediante el uso de un montón de otras clases, como ModelInfo , ModelHost , ModelHost , etc.

En nuestra aplicación que usa este marco, no queremos tener que lidiar con todo este mecanismo de ejecución de modelos, etc. Por lo tanto, hemos decidido utilizar el patrón de fachada para envolver la funcionalidad del marco de manera fácil. usar objeto (Ya hemos aplicado este patrón a otras partes del marco, con buen éxito).

Aquí está la pregunta: dado que ya tenemos un Model interfaz, ¿cuál sería un buen nombre para la clase de fachada? La interfaz del Model es el contrato entre el marco y la implementación del modelo , y la nueva clase definirá el contrato entre el marco y la aplicación cliente .

O, más generalmente: cuando tenemos una abstracción proporcionada por una biblioteca o marco, ¿cómo podemos nombrar los "dos lados" de la abstracción para identificar claramente las interfaces "proveedor" y "consumidor" a la abstracción ?

(Si importa, para este proyecto estamos usando Java 6).


¿Qué hay de * Proveedor y * Consumidor? Creo que tú mismo lo dijiste en tu pregunta. ¿Quizás * Producer y * Consumer son una mejor combinación?


En las discusiones dentro de nuestro equipo, se ha propuesto otra opción: podemos cambiar el nombre de la interfaz del Model existente a otra cosa y simplemente llamar al nuevo Model fachada. De hecho, ambos pueden llamarse Model ahora, porque vivirán en paquetes separados. (Aunque no soy un fanático de las clases con nombres idénticos en diferentes espacios de nombres).


PureMVC usa un singleton llamado ApplicationFacade y registra todos los modelos con métodos como registerProxy que se definen en IFacade


Sé que esto parece trillado, pero ... ¿has considerado usar " ModelFacade " como el nombre de clase para la clase de fachada? Creo que con la documentación que indica que la interfaz ya se llamaba Model , parece relativamente sencilla y deja muy claro qué patrón de diseño está utilizando.