factory method 패턴 예제

둘째, SimpleFactory를 사용하여 원하는 장난감을 만듭니다: 장난감 클래스도 수정해야 합니다. 엔진, 휠 및 로터 블레이드를 명확히 해야 하며 준비() 함수는 추상적이어야 합니다. (이 메서드는 구체적인 클래스에 의해 구현 됩니다. 구현에서 자식 클래스는 해당 위치특정 구성 요소를 사용하여 구체적인 구성 요소를 작성합니다. 장난감 클래스 수정: 4단계: GetPlanFactory를 사용하여 계획 DOMESTICPLAN 또는 COMMERCIALPLAN 또는 INSTITUTIONALPLAN 의 유형과 같은 정보를 전달하여 구체적인 클래스의 개체를 얻으려면 청구서를 생성합니다. 코드에서 작업해야 하는 개체의 정확한 형식과 종속성을 미리 모르는 경우 팩터리 메서드를 사용합니다. 팩터리 메서드의 점점 더 널리 사용되는 정의는 해당 클래스 형식의 개체를 반환하는 클래스의 정적 메서드입니다. 그러나 생성자와 달리 반환되는 실제 개체는 하위 클래스의 인스턴스일 수 있습니다. 생성자와 달리 기존 개체는 새 개체가 생성되는 대신 다시 사용될 수 있습니다.

생성자와 달리 팩토리 메서드는 서로 다르고 더 설명적인 이름(예: Color.make_RGB_color(예: 플로트 레드, 플로트 그린, 플로트 블루) 및 Color.make_HSB_color(플로트 색조, 플로트 채도, 플로트 밝기)를 가질 수 있습니다. 프레임워크 전체의 구성 요소를 단일 팩터리 메서드로 구성하고 구성 요소 자체를 확장하는 것 외에도 누구나 이 메서드를 재정의할 수 있습니다. 요즘클래스의 정적 메서드는 필수 클래스 형식의 개체를 반환하는 팩터리 메서드로 널리 사용됩니다. 생성자와 달리 반환하는 실제 개체는 하위 클래스의 인스턴스일 수 있으며 새 개체가 생성되는 대신 기존 개체를 다시 사용할 수도 있습니다. 매번 다시 빌드하는 대신 기존 개체를 다시 사용하여 시스템 리소스를 저장하려는 경우 팩터리 메서드를 사용합니다. 라이브러리 또는 프레임워크사용자에게 내부 구성 요소를 확장할 수 있는 방법을 제공하려는 경우 팩터리 메서드를 사용합니다. 이 시나리오에서는 간단한 팩터리에서 작동하지 않는 것처럼 보입니다.