본문 바로가기

템플릿 메소드2

행동 패턴 - 템플릿 메소스(Template Method) - 참조: https://refactoring.guru/design-patterns/template-method - 참조: GoF의 디자인 패턴 - 템플릿 메소드(Template Method) 템플릿 메소드 패턴은 부모 클래스에서 알고리즘의 뼈대를 정의하고, 서브 클래스에서 구조의 변화없이 알고리즘의 일부 단계를 재정의하는 패턴이다. - 문제점 기업의 문서를 분석하는 데이터 마이닝 어플리케이션을 만든다고 가정해보자. 사용자는 다양한 포맷(PDF, DOC, CSV)의 문서를 사용하고, 여러 포맷에서 의미있는 데이터를 단일 포맷으로 추출한다. 처음에는 DOC 파일에서만 동작하게 만들었다면 그 다음 버전에서는 CSV 를 또 몇개월 후에는 PDF 에서도 동작이 되도록 점점 기능을 확장할 가능성이 크다. 기능을 .. 2021. 6. 20.
객체 생성 패턴- 팩토리 메소드 - 참조: GoF의 디자인 패턴 - Template method: https://en.wikipedia.org/wiki/Template_method_pattern - 팩토리 메소드 객체를 생성하기 위한 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 서브클래스가 내린다. 팩토리 메소드의 예제를 검색하면 흔히 메소드의 매개변수의 타입에 따라 반환하는 객체가 다른 예제가 많이 나온다. 그래서 흔히 객체를 매개변수타입에 따라 다르게 반환하는것이 팩토리 메소드라고 생각한다. 물론 나도 예전에는 그렇게 생각했다. 하지만 위의 정의를 다시한번 생각해보면 팩토리 메소드의 핵심은 매개변수에 따라 다른 인스턴스를 반환하는것이 아님을 알 수 있다. 이 패턴의 주요핵심은 어떤 인스턴스를 생성할지에 .. 2021. 2. 21.