Permite separar el algoritmo de la estructura de datos que se utilizará para ejecutarlo.