Como sabemos, una abstracción puede tener diferentes implementaciones. El mecanismo de herencia permite que la implementación de una abstracción evolucione sin modificar significativamente el diseño. Esto es cierto mientras la
abstracción en sí misma (básicamente, su interfaz) no evolucione. Es decir, no se puede modificar independientemente una implementación y la abstracción a la que está ligada. Este patrón consigue que esto sea posible.
La parte importante del esquema son las clases Abstracción y ClaseObjetoImplementor. Los descendientes de Abstracción son "evoluciones" de la abstracción que pueden o no mantener la implementación.
Al mismo tiempo, los descendientes de ClaseObjetoImplementador son "evoluciones" de la implementación independientes de la evolución de Abstracción.
El esquema estático es el siguiente: