Interfaz pública

De Wikipedia, la enciclopedia libre

Una "'interfaz pública' es el punto lógico en el que interactúan las entidades independientes de software. 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 diseñadas para soportar cambios futuros, mejoras y depreciación para que la interacción continúe.[1]

Diseño[editar]

Orientación[editar]

  • Un proyecto debe proporcionar documentos adicionales que describan los planes y procedimientos que se pueden utilizar para evaluar el cumplimiento del proyecto.
  • Proporcionar un documento de diseño de la arquitectura.
  • Proporcionar un documento de normas de codificación.
  • Proporcionar un documento de plan de liberación de software.
  • Proporcionar un documento con un plan para la depreciación de interfaces obsoletas.
  • Crear clases completamente aisladas.
  • Aísle las interfaces públicas de las dependencias en tiempo de compilación.

Buenas prácticas[editar]

  • Presentar conjuntos completos y coherentes de conceptos para el usuario.
  • Diseño de interfaces para ser escritas de forma estática.
  • Minimizar las dependencias de la interfaz en otras interfaces.
  • Interfaces Express en términos de tipos de nivel de aplicación.
  • Usar aserciones solo para ayudar al desarrollo y la integración.

Ejemplos[editar]

  • 'Interfaz de C ++'
Utilizar clases de protocolo para definir interfaces públicas.
Las características de una clase de protocolo son:
* No contiene ni hereda de clases que contienen datos de miembros, funciones no virtuales o miembros privados (o protegidos) de cualquier 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 virtuales puras y no se definen.
'Beneficios'
Los beneficios del uso de clases de protocolo incluyen:
* Aislamiento de aplicaciones desde el cliente externo.
* Los cambios de aislamiento que son internos a la interfaz.
* Aislamiento de los cambios en la interfaz pública de los cambios a la implementación de la interfaz.
* El aislamiento tiene costos, pero éstos tienden a ser superados por las ganancias en interoperabilidad y reutilización.
'Costes' :
* 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.
  • Varias metodologías, tales como refactorización, apoyan la determinación de interfaces. La refactorización generalmente se aplica a toda la implementación del software, pero es especialmente útil para limpiar adecuadamente las interfaces.

Referencias[editar]

  1. http://hillside.net/patterns/ Metodologías de la comunidad de patrones