(디자인 패턴) 팩토리 메소드 패턴

Factory Method 패턴은 객체 생성과 관련된 디자인 패턴 중 하나입니다.

이 패턴은 클라이언트 측에서 격리된 개체 생성을 처리하는 코드를 캡슐화하여 작동합니다.

이렇게 하면 클라이언트가 개체를 직접 만들 필요가 없기 때문에 코드를 보다 유지 관리하기 쉽고 유연하게 만들 수 있습니다.

Factory Method 패턴은 일반적으로 추상 클래스를 정의하고 해당 클래스에서 개체를 생성하는 추상 메서드를 선언합니다.

그리고 이 추상 메서드를 구현하는 구체적인 클래스를 만듭니다.

클라이언트는 추상 클래스를 사용하여 객체를 생성하고 실제 객체 생성은 구체적인 클래스에 의해 수행됩니다.

이를 통해 클라이언트는 개체 생성에 대한 책임을 구체적인 클래스에 완전히 위임할 수 있습니다.

예를 들어 과일 공장 클래스를 고려하십시오. 이 클래스는 과일을 생산하는 추상 메서드를 선언하며 실제 과일을 생산하는 사과 공장, 바나나 공장, 오렌지 공장 등과 같은 구체적인 클래스를 만들 수 있습니다.

클라이언트는 추상 과일 공장을 사용하여 과일을 만들고 콘크리트 과일 공장은 실제 과일 개체를 만듭니다.

공장 방법 패턴은 물체 만들다 캡슐화하다 암호 유연한 만들다 숫자 있다. 그만큼 패턴은 특히, 물체 생산하는 과정 복잡하거나 바뀌다 가능성 높은 만약 유용한. 또한, 공장 방법 패턴은 물체 만들다 센터 집중화 암호 복제하다 줄이기 위해 디도 효과적인.

다양한 유형의 모양(직사각형, 원, 삼각형 등)을 생성하는 코드를 작성한다고 가정합니다.

첫 번째, 추상적인 수업 모양붓다 설명하다, 그만큼 클래스 물체 만들다 추상적인 방법 모양 만들기()붓다 정의하다.

public abstract class Shape {
    public abstract void draw();
    public abstract void erase();
    public abstract void setColor(String color);

    public static Shape create(String type) {
        Shape shape = null;
        if(type.equals("rectangle")) {
            shape = new Rectangle();
        } else if(type.equals("circle")) {
            shape = new Circle();
        } else if(type.equals("triangle")) {
            shape = new Triangle();
        }
        return shape;
    }
}

위의 코드에서 클라이언트가 폼을 생성할 때 create() 메서드를 사용합니다.

이 메서드는 추상적인 createShape() 메서드 대신 객체를 생성하기 위한 구체적인 메서드를 구현합니다.

이 메서드는 String 인수에 따라 생성할 도형의 유형을 결정하고 해당 도형의 객체를 생성합니다.

예를 들어 Rectangle 클래스를 만들려면 다음과 같이 Shape 클래스의 Create() 메서드를 사용할 수 있습니다.

Shape shape = Shape.create("rectangle");
shape.draw();
shape.erase();
shape.setColor("blue");

create() 메서드는 문자열 “rectangle”을 인수로 사용하고 해당 문자열에 따라 Rectangle 객체를 만듭니다.

클라이언트는 Shape 클래스의 Create() 메서드를 사용하여 모양을 만들고 구체적인 클래스는 실제 객체 생성을 수행합니다.

이와 같이 공장 방법 무늬 당신이 사용하는 경우, 고객 코드는 임신 수업과 독립적인 유지될 것이다. 형성 만들다 방법 바뀌어도 고객 암호 수정하지 않음 설사 것이 가능하다. 또한, 수치 생산하는 암호 센터 집중화 유지 보수성 승강기 숫자 있다.