Separación de intereses

En informática, la separación de intereses, también denominada separación de preocupaciones o separación de conceptos (en inglés separation of concerns), es un principio de diseño para separar un programa informático en secciones distintas, tal que cada sección enfoca un interés delimitado.

Una preocupación puede ser algo tan general como los detalles del hardware para el que se va a optimizar el código, o tan concreto como el nombre de una clase que se pretende instanciar.

La encapsulación es una manera de ocultar información que consigue que cada capa no conozca el estado de las demás.

Cuando los intereses están bien separados, se pueden reutilizar, desarrollar y actualizar las distintas secciones individuales de forma independiente.

El término «separation of concerns» fue probablemente acuñado por Edsger W. Dijkstra en su trabajo de 1974 «On the role of scientific thought» («Sobre el papel del pensamiento científico»).