당신이 쓴 :
내가 다른 구현이 객체를 구축해야합니다.
다른 클래스의 다른 구현 개체가있는 개체가 아닌가요?
the builder pattern에는 실제 건물을 담당하는 Director 개체가 있습니다. 원하는 제품을 빌드 할 수있는 구체적인 작성기 오브젝트를 인스턴스화하고 감독에게 오브젝트를 빌드하기 위해 concree-builder를 사용하도록 요청하십시오.
콘크리트 빌더는 클래스 빌더에서 파생되거나 IBuild 인터페이스를 구현합니다. 감독은 빌더를 만드는 방법을 알고 있으며 제품을 빌드하는 데 적절한 기능을 호출합니다.
전형적인 예는 오토바이와 자동차를 만들려는 경우입니다. MotorCycleBuilder와 CarBuilder라는 파생 클래스 두 개가있는 클래스 또는 인터페이스 VehicleBuilder가 있습니다. 제품으로 원하는 것을 따라 MotorCycleBuilder 또는 CarBuilder를 구성하고 디렉토리를 주문하여 제품을 빌드하십시오.
질문으로 돌아 가기. 제품 A와 제품 B의 두 종류의 제품을 만들 수 있기를 원합니다. 제품이 동일한 클래스 또는 다른 클래스 일 수 있습니다.
이 경우 빌더 패턴을 사용하려면 ABuilder와 BBuilder를 설계해야합니다. ABuilder는 제품 A를 제공하고 BBuilders는 제품 B를 제공합니다. ABuilder와 BBuilder는 모두 Builder에서 파생되었거나 IBuild와 같은 공통 인터페이스를 가지고 있습니다.
이제 제품 A 또는 A를 빌드 할 것인지 결정한 후 다음 ABuilder 및 BBuilder 모두 이러한 기능과 이러한 기능과 ibuild에 인터페이스를 구현해야합니다) 당신이 BuildStep1()와 BuildStep2을 (해야 할 제품을 구축 할 생각 지금
Builder myBuilder = isProductARequested ? new ABuilder() : new BBuilder();
Director myDirector = new Director();
Product myProduct = myDirector.Build(myBuilder);
, 또는 : 제품 B는 다음을 수행 BuildStep1() 및 BuildStep2() 함수를 사용하여 추상 클래스에서 파생됩니다.
BuildStep1과 BuildStep2의 실제 구현은 다른 제품이 빌드되었는지 확인합니다. 이러한 제품은 유형이 동일하거나 유형이 다를 수 있습니다.