Saltar al contenido

Modelo por capas

Dos caras de una estructura

Cada chat hace dos cosas distintas:

  • Lo que promete: «puedes pedir el mensaje i», «puedes añadir un mensaje al final». A esa lista de operaciones, con lo que hace cada una, se le llama interfaz.
  • Cómo lo guarda en memoria: los mensajes uno tras otro en un bloque, o cada uno en cualquier sitio con una nota que dice dónde está el siguiente. A eso se le llama representación.

Quien usa el chat solo ve la interfaz. El tiempo que tarda cada operación depende de la representación.

En la figura, la caja de arriba es la interfaz; los dos bloques de abajo son dos representaciones que la cumplen.

Interfaz y representaciones de un chatArriba, la interfaz con cuatro operaciones: longitud, leer, agregar e insertar. Abajo, dos representaciones que la cumplen: A guarda los mensajes m0 a m3 en casilleros contiguos; B guarda cada mensaje en cualquier sitio con una nota al siguiente. La posición de los nodos en la figura no es su dirección en memoria.Interfaz: lo que prometelongitud(s)leer(s, i)agregar(s, x)insertar(s, i, x)Representación ARepresentación Bm0m1m2m3casilleros contiguos, uno tras otrom0m1m2m3cada mensaje en cualquier sitio, con una notaque dice dónde está el siguiente
Una interfaz, dos representaciones. Quien usa el chat solo ve la caja de arriba.

Una estructura de datos es una representación junto con el código de sus operaciones.

Cambias el chat A por el chat B sin tocar el código que los usa. ¿Qué frase sigue siendo verdadera?