En informática , una interfaz pública es el punto lógico en el que interactúan entidades de software independientes . Las entidades pueden interactuar entre sí dentro de una sola computadora, a través de una red o a través de una variedad de otras topologías .
Es importante que las interfaces públicas sean estables y estén diseñadas para soportar cambios, mejoras y desuso futuros para que la interacción continúe.
Diseño
Guía
Un proyecto debe proporcionar documentos adicionales que describan los planes y procedimientos que pueden utilizarse para evaluar el cumplimiento del proyecto.
El programador debe crear clases completamente aisladas y aislar las interfaces públicas de las dependencias en tiempo de compilación .
Mejores prácticas
- Presentar conjuntos de conceptos completos y coherentes al usuario.
- Diseñar interfaces para que sean tipificadas estáticamente.
- Minimizar las dependencias de la interfaz con otras interfaces.
- Expresar interfaces en términos de tipos de nivel de aplicación.
- Utilice afirmaciones únicamente para facilitar el desarrollo y la integración.
Ejemplo
Interfaz C++
- Utilice clases de protocolo para definir interfaces públicas.
- Las características de una clase de protocolo son:
- No contiene ni hereda de clases que contengan datos de miembros, funciones no virtuales o miembros privados (o protegidos) de ningún tipo.
- Tiene un destructor virtual no en línea definido con una implementación vacía.
- Todas las funciones miembro distintas del destructor, incluidas las funciones heredadas, se declaran como virtuales puras y se dejan sin definir.
- Beneficios
- Los beneficios de utilizar clases de protocolo incluyen:
- Aislar aplicaciones del cliente externo
- Cambios aislantes que son internos a la interfaz
- Aislar los cambios en la interfaz pública de los cambios en la implementación de la interfaz
- El aislamiento tiene costos, pero éstos tienden a ser compensados por las ganancias en interoperabilidad y reutilización.
- Costos :
- Pasando por el puntero de implementación
- Adición de un nivel de indirección por acceso
- Adición del tamaño del puntero de implementación por objeto a los requisitos de memoria
Otra información
Diversas metodologías , como la refactorización , respaldan la determinación de interfaces. La refactorización generalmente se aplica a toda la implementación del software, pero es especialmente útil para eliminar adecuadamente las interfaces. Existen otros enfoques definidos a través de la comunidad de patrones. [1]
Referencias
- ^ "Biblioteca de patrones de diseño". hillside.net . Consultado el 24 de noviembre de 2022 .