¿Por qué las interfaces en Java son beneficiosas para el mantenimiento del código?
Similar al diseño de interfaces de hardware, como varias interfaces en las placas base de las computadoras, interfaces en el lenguaje Java, la aplicación de conceptos y formas de programación altamente abstractos y los requisitos para mejorar la interfaz durante la aplicación, de modo que los objetos puede pasar a través de la conexión de interfaz con el mundo exterior.
1 Interfaces y Clases
Si una clase proporciona cálculos y códigos de operación específicos para la forma y el comportamiento del objeto que representa, una interfaz solo proporciona instrucciones para todas las clases que quieran implementar el protocolo. Estos protocolos son canales de comunicación y diálogo entre clases e interfaces. En forma de constantes estáticas y firmas de métodos, se establece un sistema de intercambio entre diferentes clases, al igual que los pines de una CPU se alinean con los pines de su interfaz. Esto parece ser muy tolerante con las clases, pero en realidad propone un mecanismo de gestión y organización de las clases. Se propone un macrocontrol basado en políticas para comportamientos similares.
interfaz pública enchufable {
cadena final estática ID de componente = "CPU"; //Opcional
void plugin(argumentList); //Opcional
p>
}
Es decir, la interfaz solo especifica constantes estáticas, firmas de métodos y tipos de retorno, sin códigos de operación específicos. El comportamiento del método específico lo implementa la clase que hereda esta interfaz. Como puede ver, una interfaz puede ser una interfaz vacía con solo un nombre de interfaz.
Las interfaces son heredables. Al igual que las clases, las constantes estáticas (si las hay, solo pueden ser constantes estáticas públicas) y los métodos en una interfaz pueden ser heredados por la clase que las implementa. Por tanto, la tecnología de interfaz ofrece la posibilidad de implementar herencia múltiple en Java. Es decir, una subclase puede heredar múltiples superclases directas. En programación Java, más precisamente, una subclase puede heredar una superclase directa y múltiples interfaces (ver Figura 7.4). Es decir:
clase pública Subclase extiende Superclase implementa Interfaz1, Interfaz2, InterfazN {
...
}
A esto lo llamamos La herencia múltiple es una herencia múltiple indirecta. Debido a que la subclase solo hereda las especificaciones de protocolo escritas para los métodos en la interfaz, también debe escribir código específico para completar estos métodos.
Si la subclase hereda la superclase es "es un", es decir, la relación de "es", y la relación entre la clase y la clase de soporte es "tiene un", es decir, la relación "tiene" o "combinación" ", entonces la clase y la interfaz son "como un", es decir, la relación entre "me gusta". La interfaz significa que todas las clases que implementan mi interfaz tienen el protocolo especificado por mí, es decir, "todas se parecen a mí", para ser precisos, "todas se parecen a mi firma". Porque la clase que completa esta interfaz debe escribir código específico según la firma y el tipo de retorno. Por supuesto, la clase sabe qué métodos se deben llamar para implementar las funciones de interfaz heredadas.
Como analogía, la herencia es como "dar riqueza", la combinación es como "tú me tienes" y la interfaz es como "tú me tienes".
La tecnología de interfaz ayuda a lograr relaciones de "acoplamiento flojo" entre clases (acoplamiento flojo, también conocido como acoplamiento flojo). La "asociación suelta" explica los siguientes dos principios importantes en la programación orientada a objetos:
1. Hacer que las clases existan de forma independiente tanto como sea posible y sean "autosuficientes" (cohesión vinculada).
2. Si hay dependencias entre clases, implemente el acoplamiento flexible tanto como sea posible.
Las interfaces establecen relaciones flexibles entre clases en forma de protocolos. Refleja la separación de normas de comportamiento e implementación de comportamiento. Hacer que la interfaz, el diseño de esta clase especial, se eleve a un nivel más abstracto.