Delphi의 빌더 모드는 기본 빌더 모드를 확장합니다. 빌더 모드에 대한 자세한 내용은 [Gam+]를 참고하세요.
동일한 구성 프로세스가 다른 표현을 생성할 수 있도록 복잡한 객체의 구성과 표현을 분리합니다.
빌더는 개념적으로 추상 팩토리와 유사합니다. 그러나 차이점은 생성기가 다양한 생성자를 참조하여 단일 복합 클래스의 다양한 구성 요소를 생성하는 반면 추상 팩토리를 사용하면 전체 구체적인 클래스를 만들 수 있다는 것입니다. 예를 들어 건축업자는 주택, 빌라, 사무실을 지을 수 있습니다. 다양한 건축업자를 고용하여 벽돌집과 목조집을 지을 수 있습니다. 집의 모양과 크기를 지정할 수 있지만. 그리고 다른 갈비뼈는 집의 전부가 아닌 일부를 만드는 데 사용됩니다. 예를 들어 창문, 문, 주차장을 건설하세요.
다음 예제에서는 먼저 추상 클래스 TabstractFormBuilder와 두 개의 구체적인 하위 클래스 TredFormBuilder 및 TblueFormBuilder를 소개합니다. TabstractFormBuilder는 일부 클래스 생성자를 선언합니다.
유형
TAbstractFormBuilder = 클래스
사적인
FForm: TForm;
절차 BuilderFormClose(Sender: TObject; var Action: TCloseAction);
보호됨
함수 GetForm: TForm;
공공의
프로시저 CreateForm(AOwner: TComponent);
프로시저 CreateSpeedButton; 추상;
프로시저 CreateEdit 가상;
프로시저 CreateLabel;
속성 양식: TForm read GetForm;
끝;
유형
TRedFormBuilder = 클래스(TAbstractFormBuilder)
사적인
FNextLeft, FNextTop: 정수;
공공의
프로시저 CreateForm(AOwner: TComponent);
프로시저 CreateSpeedButton;
프로시저 CreateEdit;
프로시저 CreateEdit;
끝;
유형
TBlueFormBuilder = 클래스(TAbstractFormBuilder)
사적인
FNextLeft, FNextTop: 정수;
공공의
프로시저 CreateForm(AOwner: TComponent);
프로시저 CreateSpeedButton;
프로시저 CreateEdit;
프로시저 CreateLabel;
끝;
위의 인터페이스 중:
? 추상 제품 개체를 생성하기 위한 인터페이스 선언: TAbstractFormBuilder
¨ 클래스 TAbstractFormBuilder에는 CreateForm, CreateSpeedButton, CreateEdit, CreateEdit의 세 가지 추상 팩토리 메소드가 있습니다.
? TBlueFormBuilder 및 TRedFormBuilder는 특정 제품 객체를 생성하는 방법을 구현하는 데 사용됩니다.
실행 시 클라이언트 프로그램은 특정 클래스의 공용 생성자를 호출하여 해당 클래스의 일부를 생성합니다. 특정 생성자 인스턴스의 호출 방법은 다음과 같습니다.
절차 TForm1.Create3ComponentFormUsingBuilder(ABuilder: TAbstractFormBuilder);
var
새양식: TForm;
시작하다
ABuilder로 시작하세요
CreateForm(응용프로그램);
생성편집;
CreateSpeed버튼;
라벨 생성;
NewForm := 양식;
NewForm <> nil이면 NewForm.Show;
끝;
끝;