📌 팩토리 메소드 패턴(Factory Method)
⭐ 개념
- 상속 관계에 있는 두 클래스에서, 상위클래스가 중요한 뼈대를 결정하고, 하위클래스에서는 객체생성에 대한 내용을 결정하는 패턴
- 상위클래스는 객체생성을 알 필요 없어지므로 느슨한 결합을 통해 유연성을 가지게 되며, 객체생성은 오직 하위클래스에서만 관리되므로 유지보수성이 증가됨
- 패턴을 구현하기 위해 많은 새로운 자식 클래스들을 도입해야 하므로 코드가 더 복잡해 질수있다
⭐ 코드
public class Main {
public static void main(String[] args){
Juice juice = JuiceFactory.createJuice(JuiceType.OrangeJuice);
System.out.println(juice.getName());
}
}
enum JuiceType{
OrangeJuice,
KiwiJuice
}
abstract class Juice{
protected String name;
public String getName() {
return name;
}
}
class OrangeJuice extends Juice{
public OrangeJuice() {
this.name = "OrangeJuice";
}
}
class KiwiJuice extends Juice{
public KiwiJuice() {
this.name = "KiwiJuice";
}
}
class JuiceFactory{
public static Juice createJuice(JuiceType type) {
switch(type) {
case OrangeJuice:
return new OrangeJuice();
case KiwiJuice:
return new KiwiJuice();
default:
throw new IllegalArgumentException("에러발생!");
}
}
}