문제
다음 시나리오에서 적용된 GoF 디자인 패턴을 식별하시오.
Javapublic abstract class DocumentProcessor { protected abstract FileParser createParser(); public void processDocument(String filePath) { FileParser parser = createParser(); Document doc = parser.parse(filePath); doc.validate(); doc.save(); } } public class XMLProcessor extends DocumentProcessor { protected FileParser createParser() { return new XMLParser(); } } public class JSONProcessor extends DocumentProcessor { protected FileParser createParser() { return new JSONParser(); } }
위 코드에서 DocumentProcessor는 문서 처리 흐름을 정의하지만, 구체적인 파서 생성은 서브클래스에 위임한다. 이때 createParser() 메소드가 구현하는 생성 패턴은 무엇인가?
정답
팩토리 메소드 패턴
팩토리 메소드 패턴팩토리 메서드 패턴Factory Method Pattern팩토리 메소드팩토리 메서드
해설
이 코드는 팩토리 메소드 패턴의 전형적인 구현이다. 추상 클래스 DocumentProcessor에서 createParser()라는 추상 메소드를 정의하고, 구체적인 객체 생성은 XMLProcessor, JSONProcessor 같은 서브클래스에서 담당한다. 상위 클래스는 객체 생성 인터페이스만 제공하고, 실제 어떤 구체 클래스의 인스턴스를 생성할지는 서브클래스가 결정하는 구조로, 객체 생성 로직을 캡슐화하면서도 확장성을 제공한다.