Definición: Un objeto debe mantener la menor comprensión de otros objetos.
El origen del problema: cuanto más cerca sea la relación entre las clases, mayor es el grado de acoplamiento y cuando una clase cambia, mayor será el impacto en otra clase.
Solución: minimice el acoplamiento entre las clases tanto como sea posible.
Desde que comenzamos a aprender la programación, hemos conocido los principios generales de la programación de software: bajo acoplamiento y alta cohesión. Ya sea que se trate de una programación orientada a procesos o orientada a objetos, la tasa de reutilización del código solo puede mejorarse manteniendo el acoplamiento entre cada módulo lo más bajo posible. Las ventajas del bajo acoplamiento son evidentes, pero ¿cómo puede programar para lograr un bajo acoplamiento? Eso es exactamente lo que la regla DIMIT va a lograr.
La Ley del DiMitter, también conocida como el principio del menor conocimiento, fue propuesta por primera vez en 1987 por Ian Holland de la Northeastern University en los Estados Unidos. En términos de Layman, cuanto menos sepa sobre una clase de la que depende, mejor. En otras palabras, para la clase dependiente, no importa cuán compleja sea la lógica, intente encapsular la lógica dentro de la clase y no filtrar ninguna información al exterior, excepto el método público proporcionado. La regla DIMIT también tiene una definición más simple: solo comunicarse con amigos directos. Primero, expliquemos qué es un amigo directo: cada objeto tendrá una relación acoplada con otros objetos. Mientras haya una relación de acoplamiento entre los dos objetos, diremos que estos dos objetos son una relación de amigos. Hay muchas maneras de acoplar, como dependencia, asociación, combinación, agregación, etc. Entre ellos, llamamos a la clase en la variable de miembro, parámetros de método y valor de retorno de método que aparece como amigos directos, mientras que la clase en la variable local no son amigos directos. En otras palabras, es mejor no aparecer dentro de la clase como una variable local.
Aquí hay un ejemplo de una violación del principio DIMIT:
maestro de clase pública {maestro público vacío (clases classes) {classes.getstudents.getscore.show (); }}
¿Cuáles son los problemas? Acoplamiento demasiado alto.
1. La clase de puntuación puede cancelarse en la clase de estudiante.
2. El método de espectáculo de la clase de puntuación también se puede eliminar.
Las clases de estudiantes y las clases de puntaje no son familiares para usted, y es posible que no sepa cuándo cambian.
Podemos modificarlo a:
Public Class Teacher {public void maestro (clases classes) {classes.showscore (); }} clases de clase pública {public void showscore (estudiante estudiante) {student.showscore (); }} Public Class Student {Score score; public void showscore () {stork = new Score (80); Score.show (); }}
Resumir:
1. La ventaja de la ley de Dimit es reducir el acoplamiento entre clases.
2. La desventaja es que producirá métodos más pequeños, lo que hará que el sistema sea más desordenado y la eficiencia de la comunicación se reducirá.
3. Aplicaciones en modo de diseño: modo de fachada (modo de fachada) y modo mediador (modo mediador).