Le mode Builder dans Delphi étend le mode Builder de base. Pour plus d'informations sur le mode Constructeur, veuillez vous référer à [Gam+]
Séparer la construction d'un objet complexe de sa représentation afin qu'un même processus de construction puisse créer des représentations différentes
Un constructeur est conceptuellement similaire à une usine abstraite. Mais la différence est que le générateur génère les différents composants d’une même classe complexe en référençant différents constructeurs, tandis que la fabrique abstraite permet de créer une classe concrète entière. Par exemple : un constructeur peut construire des maisons, des villas et des bureaux. Vous pouvez embaucher différents constructeurs pour construire des maisons en brique et des maisons en bois. Bien que vous puissiez spécifier la forme et la taille de la maison. Et d’autres nervures sont utilisées pour construire une partie de la maison, mais pas la totalité. Par exemple, construisez des fenêtres, des portes et des parkings.
L'exemple suivant présente d'abord une classe abstraite TabstractFormBuilder et ses deux sous-classes concrètes TredFormBuilder et TblueFormBuilder. TabstractFormBuilder déclare certains constructeurs de classe
taper
TAbstractFormBuilder = classe
Privé
FForm : TForm ;
procédure BuilderFormClose (Expéditeur : TObject ; var Action : TCloseAction);
protégé
fonction GetForm : TForm ; virtuel ;
publique
procédure CreateForm(AOwner : TComponent);
procédure CreateSpeedButton ; virtuel ;
procédure CreateEdit; virtuel;
procédure CreateLabel ; virtuel ; résumé ;
propriété Form : TForm lit GetForm ;
fin;
taper
TRedFormBuilder = classe (TAbstractFormBuilder)
privé
FNextLeft, FNextTop : entier ;
publique
procédure CreateForm (AOwner : remplacement de TComponent );
procédure CreateSpeedButton ;
procédure CreateEdit ;
procédure CreateEdit ;
fin;
taper
TBlueFormBuilder = classe (TAbstractFormBuilder)
privé
FNextLeft, FNextTop : entier ;
publique
procédure CreateForm (AOwner : remplacement de TComponent );
procédure CreateSpeedButton ;
procédure CreateEdit ;
procédure CreateLabel ; remplacement ;
fin;
Parmi les interfaces ci-dessus :
? Déclarer une interface pour créer des objets produit abstraits : TAbstractFormBuilder
¨ La classe TAbstractFormBuilder a trois méthodes de fabrique abstraites CreateForm, CreateSpeedButton, CreateEdit, CreateEdit
? TBlueFormBuilder et TRedFormBuilder sont utilisés pour implémenter des méthodes de création d'objets produits spécifiques
Lors de l'exécution, le programme client appelle un constructeur public d'une classe spécifique pour en créer certaines parties. La méthode d'appel d'une instance de constructeur spécifique est la suivante :
procédure TForm1.Create3ComponentFormUsingBuilder(ABuilder: TAbstractFormBuilder);
var
NouveauForm : TForm ;
commencer
avec ABuilder, commencez
CréerFormulaire(application);
CréerModifier ;
CreateSpeedButton ;
CréerÉtiquette ;
NouveauFormulaire := Formulaire ;
si NewForm <> nul alors NewForm.Show ;
fin;
fin;