1.1.2 Factory Pattern
1.1.2 팩토리 패턴
// CoffeeType 열거형 정의
enum CoffeeType {
LATTE, ESPRESSO
}
// 추상 클래스 Coffee
abstract class Coffee {
protected String name;
public String getName() {
return name;
}
}
// Latte 클래스 정의
class Latte extends Coffee {
public Latte() {
name = "Latte";
}
}
// Espresso 클래스 정의
class Espresso extends Coffee {
public Espresso() {
name = "Espresso";
}
}
// CoffeeFactory 클래스 정의
class CoffeeFactory {
public static Coffee createCoffee(CoffeeType type) {
switch (type) {
case LATTE:
return new Latte();
case ESPRESSO:
return new Espresso();
default:
throw new IllegalArgumentException("Invalid coffee type: " + type);
}
}
}
// Main 클래스 정의
public class FactoryPatternDemo {
public static void main(String[] args) {
Coffee coffee1 = CoffeeFactory.createCoffee(CoffeeType.LATTE);
Coffee coffee2 = CoffeeFactory.createCoffee(CoffeeType.ESPRESSO);
System.out.println("First coffee: " + coffee1.getName()); // Latte
System.out.println("Second coffee: " + coffee2.getName()); // Espresso
}
}팩토리 패턴 연습
Last updated