1. Le client est associé aux figures géométriques. Son objectif est de les dessiner. La figure géométrique est composée d’un ensemble de propriétés, dont celles liées au dessin (trait, couleur, etc.). Ces propriétés dépendent de l’environnement (elles sont spécialisées). La figure géométrique peut être spécialisée, en particulier, en cercle ou en rectangle.
L’abstraction est visible par les clients, renvoie les demandes vers l’implémentation (operation=Implementation.operation) et fournit des fonctions de haut niveau. Les classes Refined Abstraction implémentent les différentes abstractions, à la façon des classes Figure Geometrique qui implémentent différentes figures. Implementation est une interface entre plusieurs implémentations possibles. Elle offre des opérations de bas niveau. Les classes Implementation 1 et Implementation 2 permettent d’implémenter l’interface Implementation en proposant des méthodes concrètes.