Seis principios de patrones de diseño (4)----Principio de aislamiento de interfaz
En otras palabras: la interfaz debe ser lo más detallada posible y los métodos en la interfaz deben ser el menor número posible.
Desde un punto de vista funcional, el principio de aislamiento de la interfaz y El principio de responsabilidad única es mejorar la cohesión de la clase, reducir el acoplamiento entre clases y encarnar la idea de encapsulación. Pero todavía hay una diferencia entre los dos.
(1) Desde la perspectiva de las restricciones de principio: el principio de aislamiento de la interfaz se centra más en el aislamiento de las dependencias de la interfaz, mientras que el principio de responsabilidad única se centra más en la división de las responsabilidades de la interfaz.
(2) Desde la perspectiva del refinamiento de la interfaz: el principio de responsabilidad única divide las interfaces con mayor precisión, mientras que el principio de aislamiento de la interfaz se centra en el aislamiento de interfaces con la misma función. La interfaz mínima en el aislamiento de interfaz a veces puede ser varias interfaces públicas con una única responsabilidad.
(3) El principio de responsabilidad única está más sesgado hacia las restricciones comerciales: el principio de aislamiento de la interfaz está más sesgado hacia las restricciones de la arquitectura de diseño. Esto debería ser fácil de entender. Las responsabilidades se dividen según las funciones comerciales, por lo que el principio único está más sesgado hacia los negocios, mientras que el aislamiento de la interfaz está más orientado hacia la "alta cohesión" y hacia el diseño de la arquitectura.
El principio de aislamiento de interfaz es restringir las interfaces y reducir la dependencia de las clases de las interfaces. Seguir el principio de aislamiento de interfaz tiene las siguientes cinco ventajas.
Al aplicar específicamente el principio de aislamiento de la interfaz, se debe medir de acuerdo con las siguientes reglas.
1) La interfaz debe ser lo más pequeña posible
La interfaz Fat no puede aparecer, pero debe ser limitada. En primer lugar, no puede violar el principio de responsabilidad única (una interfaz no puede). corresponde a la mitad de la responsabilidad).
2) La interfaz debe ser altamente cohesiva.
Publicar la menor cantidad de métodos públicos posible en la interfaz.
La interfaz es un compromiso externo. Cuantos menos compromisos, más beneficioso será para el desarrollo del sistema.
3) Servicios personalizados
Proporcione sólo los métodos que los visitantes necesitan. Por ejemplo, la interfaz IComplexSearcher se proporciona para administradores y la interfaz ISimpleSearcher se proporciona para la red pública.
4) Existen límites en el diseño de interfaces
Comprenda el entorno y rehúse seguirlo ciegamente. Cada proyecto o producto tiene factores ambientales seleccionados. Los diferentes entornos tienen diferentes estándares para la división de interfaces, lo que requiere una comprensión profunda de la lógica empresarial.
A continuación se toma la gestión del desempeño de los estudiantes como ejemplo para ilustrar el principio de aislamiento de la interfaz:
Análisis: los programas de gestión del desempeño de los estudiantes generalmente incluyen consultar puntajes, agregar puntajes, eliminar puntajes, modificar puntajes, y calcular totales ¿Qué hacemos habitualmente con funciones como puntuación, calcular puntuaciones promedio e imprimir información de puntuación?
Por lo general, la forma en que diseñamos las interfaces es la siguiente:
Pondremos todas las funciones en una interfaz. ¿Qué tipo de problemas causará esto? En resumen, existen muchos métodos de interfaz, lo que no favorece la expansión. Por ejemplo: los estudiantes solo tienen permiso para ver partituras e imprimir transcripciones, pero no tienen permiso para agregar, eliminar o modificar. Los profesores tienen todos los permisos.
Consultar transcripciones:
p>Transcripciones operativas
Puede ver el problema Para consultar transcripciones, solo usaremos dos métodos, pero debido a que la interfaz está implementada, usamos. tendrá que reescribir todos los métodos.
Si agrega requisitos en este momento, envíelo a los padres, solo los maestros tienen este permiso, los estudiantes no tienen este permiso. Sin embargo, después de agregar un método abstracto a la interfaz, todas las clases de implementación deben anular este método. Esto viola el principio de apertura y cierre.
El diagrama UML de la interfaz diseñada utilizando el principio de aislamiento de interfaz es el siguiente:
Dividimos el interfaz original en una interfaz de consulta y una interfaz de operación. De esta manera, el estudiante no necesita reescribir interfaces que no están relacionadas con ella.
Obviamente no es razonable poner todas estas funciones en una sola interfaz. El enfoque correcto es colocarlos por separado entre los tres módulos, incluido el módulo de entrada, el módulo estadístico y el módulo de impresión, el diagrama de clases se muestra en la Figura 1.