팩토리메서드(FactoryMethod)

Seo·2020년 8월 25일
0

design_pattern

목록 보기
5/11

상위문서: GoF 디자인 패턴

팩토리메서드(FactoryMethod)

  • 상위 Category : 생성(Creational) 패턴

객체 생성을 서브 클래스(객체를 만드는 공장-Factory로 이해)로 분리하여 처리하도록 캡슐화 하는 패턴

장점은
1. 클래스 간 결합도를 낮춰서 보다 효율적인 코드 제어를 할 수 있다.


// Student.class
public abstract class Student{
    public abstract String getMajor();
}

public class MathGroup extends Student{
    @Override
    public String getMajor(){
        return "Math";
    }
}
public class CSGroup extends Student{
    @Override
    public String getMajor(){
        return "CS";
    }
}

// Group.class
public abstract class Group{
    abstract Student createStudent(String major);
}

public class FactoryMethod extends Group{
    @Override
    Student createStudent(String major){
        switch(major){
            case "Math": return new MathGroup();
            case "CS" : return new CSGroup();
        }
    }
}

{...}

// test
FactoryMethod fm = new FactoryMethod();
Student student = fm.createStudent("CS");
profile
개발관심자

0개의 댓글