팩토리 메소드 패턴

DEV_HOYA·2023년 10월 18일
0

CS

목록 보기
13/55
post-thumbnail

📌 팩토리 메소드 패턴(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("에러발생!");
		}
	}
}

// OrangeJuice

0개의 댓글