Inversión de abstracción
# Inversión de abstracción

En computación, el antipatrón de diseño inversión de abstracción (en inglés abstraction inversion) ocurre cuando un programador construye una interfaz que no expone las funcionalidades requeridas por los usuarios, aunque estas sean efectivamente implementadas, obligando al usuario a implementarlas mediante un mecanismo complejo. No debe mal entenderse como: "una construcción simple que esconde una construcción muy complicada" - construcción que es deseable.

Por ejemplo, en el lenguaje de programación Ada se considera que las primitivas de sincronización están invertidas: se construyen exclusiones mutuas o mutex como sencilla aplicación de la noción de rendevouz que es en sí más compleja. Lo que sucede en este caso, es que los programadores de Ada, para implementar semáforos (mutex), deben utilizar las primitivas «rendevouz», las que son más complejas que los semáforos (los utilizan), produciendo de esta forma la inversión de abstracción .

Otro ejemplo es el uso de transacciones en una base de datos, cuando lo que se desea hacer es garantizar exclusión entre varias instancias de un algoritmo en hilos de ejecución diferentes.

