팩토리 패턴이란?
객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴이자 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴이다.
팩토리 패턴 구현
enum PhoneType {
APPLE, SAMSUNG
}
abstract class Phone {
String name;
public String Phone() {
return name;
}
}
class ApplePhone extends Phone {
public ApplePhone() {
name = "apple";
}
}
class SamsungPhone extends Phone {
public SamsungPhone() {
name = "samsung";
}
}
class PhoneFactory {
public static Phone createPhone(PhoneType type) {
switch (type) {
case APPLE:
return new ApplePhone();
case SAMSUNG:
return new SamsungPhone();
default:
throw new IllegalArgumentException("Invalid coffe type : " + type);
}
}
}
Phone 클래스를 상속하는 ApplePhone, SamsungPhone 클래스의 구현을 PhoneFactory에게 위임하였다. 이렇게 각각의 코드를 변경하거나 새로운 클래스를 추가하게 되더라도 생성에 관련된 부분은 factory에게 위임하였고, 상위 클래스에서는 생성방식에 대해서 전혀 알 필요가 없기 때문에 더 많은 유연성을 갖게된다.
'JAVA' 카테고리의 다른 글
[JAVA] 옵저버 패턴(Observer Pattern)이란? (0) | 2025.05.23 |
---|---|
[JAVA] 전략 패턴(Strategy Pattern)이란? (1) | 2025.05.23 |
[JAVA] 싱글톤 패턴(Singleton Pattern)이란? (0) | 2025.05.20 |
[JAVA] 예외클래스와 예외처리 (2) | 2024.12.08 |
[JAVA] Heap 메모리 구조와 Garbage Collection (2) | 2024.12.08 |