Bonjour à tous,

Je m'intéresse en ce moment au design pattern pont dont le but est de pouvoir faire varier indépendamment l'implémentation de l'abstraction.
C'est au sujet de la variation de l'abstraction et de l'implémentation que j'aimerais un éclaircissement ou plutôt un exemple.

Pour reprendre l'exemple de A. Shalloway dans son livre "Design pattern par la pratique" qui prend un système dessinant plusieurs formes (rectangle et cercle) à partir de deux programmes de dessin (dessinateur1 et 2).

Dans cet exemple :
- une forme doit savoir se dessiner : elle contient donc une méthode dessiner()
- un programme de dessin sait dessiner une ligne et un cercle : il contient donc deux méthodes : dessinerLigne() et dessinerCercle()

En interne la classe abstraite Forme contient un attribut de type ProgrammeDessin (qui référencera donc soit programmeDessin1 ou programmeDessin2).

Ma question est simple : pourriez vous me donner un exemple de variation d'implémentation et (surtout) un exemple de variation d'abstraction montrant que l'un n'affecte pas l'autre dans les deux cas?

Cette question est une question de débutant pardon d'avance mais j'ai plusieurs hypothèses sur cela et j'ai besoin d'avis extérieurs...

Merci d'avance