Un canevas de pattern Java est fourni pour faciliter la conception et l'implémentation du pattern. Le canevas prend en charge un ensemble de mécanismes pour le comportement par défaut du pattern et un ensemble d'extensions pour une implémentation spécifique de pattern.
Ce code de base est appelé modèle d'implémentation et inclut une bibliothèque de patterns, le corps du pattern et les paramètres du pattern. Le canevas fournit également des fonctions courantes que l'auteur peut utiliser en étendant les interfaces et les classes abstraites définies dans un service de pattern. Le code de base par défaut est ajouté lorsque l'auteur du pattern crée le projet de plug-in du pattern. La bibliothèque de patterns, essentielle à la conception du pattern, est créée pendant ce processus.
L'auteur complète le modèle d'implémentation en ajoutant à la bibliothèque un ou plusieurs patterns et leurs paramètres de canevas. Pour cela, il utilise les outils de l'interface graphique. Le modèle d'implémentation est régénéré à chaque fois que l'auteur du pattern modifie le modèle de bibliothèque. Les patterns sont représentés par des classes Java, incluant une classe pour chaque paramètre. Chaque paramètre possède des méthodes d'expansion vides pour adresser l'ajout ou la suppression d'un argument.
Des dépendances sont utilisées pour contrôler la séquence d'expansion lorsqu'un paramètre requiert les valeurs d'un autre pour s'étendre. Une classe de dépendance est imbriquée dans la classe de paramètre correspondante et inclut trois méthodes de mise à jour. Le code ajouté aux méthodes de mise à jour adresse les conditions qui peuvent se produire dans l'application du pattern : ajout, suppression ou gestion d'un argument.
Les méthodes d'expansion et de mise à jour sont appelées zones sensibles. L'auteur du pattern fournit le code correspondant dans les zones sensibles qui appelleront les comportements requis lorsque le pattern sera appliqué. Les zones sensibles sont clairement annotées dans le code Java par défaut avec des commentaires TODO. Le code par défaut est marqué de balises @generated Javadoc. Les balises @generated doivent être retirées si le code par défaut est modifié ou bien les modifications seront écrasées à la régénération du modèle d'implémentation.