Tengo un proyecto en el que he creado un API de métodos que manipulan el comportamiento de un Robot

kit-brazo-robotico-6-servomotores-6-gdl-S_516401-MEC20325145979_062015-F-1.jpg

El código que ++genera la conexión es de más bajo nivel++ y está encapsulado en una interfaz. Este está solo disponible para ser llamado dentro de la interfaz.

Existen también métodos de ++más alto nivel++ que definen el comportamiento del robot y están disponibles para ser llamados desde dónde se esté generando una instancia/objeto de ella.

¿Cuál es el concepto que estamos aplicando al tener capas disponibles y otras no disponibles en mi proyecto?

Explicanos más en la sección de comentarios.