[Design Pattern] 팩토리 패턴(Factory Method)

YounDitt·2020년 10월 12일
0

Design Patterns

목록 보기
3/4

Factory Method Pattern

📌 객체생성시 클래스를 분리해 처리하도록 캡슐화 하는 패턴

구현 클래스를 정의한다.

//Shape.java
public abstract class Shape {
    abstract void draw();
}

//Circle.java
public class Circle extends Shape {
    @Override
    void draw() {
        System.out.println("draw Circle");
    }
}

//Square.java
public class Square extends Shape {
    @Override
    void draw() {
        System.out.println("draw Square");
    }
}

별도의 클래스(factory)에서 하위 클래스를 생성한다

//ShapeFactory.java
public class ShapeFactory {
    public Shape getShape(String shapeType) {
        switch (shapeType) {
            case "Circle":
                return new Circle();
            case "Square":
                return new Square();
            default:
                return null;
        }
    }
}

조건에 따라 생성된 클래스를 사용한다

//Main.java
public class Main {
    public static void main(String[] args) {
        ShapeFactory factory = new ShapeFactory();
        Shape circle = factory.getShape("Circle");
        Shape square = factory.getShape("Square");

        circle.draw();
        square.draw();
    }
}

🙌 객체의 결합도가 낮아지고 유지보수에 용이하다

#생성패턴의 하나 #전략패턴 사용 #싱글톤패턴 사용


참고 1
참고 2
참고 3

profile
Hello, Android

0개의 댓글