자바 디자인 패턴 2

템플릿 메소드 패턴(template method pattern) 이란?

이번에는 템플릿 메소드 패턴(template method pattern)에 대해서 알아보도록 하겠습니다.이전글들과 마찬가지로 Head First Design Pattern 책을 참고했습니다. 템플릿 메소드 패턴에서는 메소드에서 알고리즘의 골격을 정의합니다.알고리즘의 여러 단계 중 일부는 서브클래스에서 구현할 수 있습니다. 템플릿 메소드를 이용하면 알고리즘의 구조는 그대로 유지하면서 서브클래스에서 특정단계를 재정의 할 수 있습니다. 즉, 템플릿 메소트 패턴은 알고리즘 틀을 만들기 위한 것입니다.아래 예제 소스코드는 커피, 차를 만드는 과정을 프로그램 한 것입니다. 커피, 차를 만드는 일련의 과정을 메소드로 정의합니다.그리고, 이 메소드 중 하나 이상이 추상메소드로 정의되며, 그 추상 메소드는 서브클래스에서..

팩토리 패턴(Factory Pattern) 이란?

이번 시간에는 팩토리 패턴(Factory Pattern)에 대해서 알아보도록 하겠습니다. 원칙 : 바뀔 수 있는 부분을 찾아내서 바뀌지 않는 부분하고 분리시켜야 한다. new를 사용하는 것은 구상클래스의 인스턴스를 만드는 것입니다. 구상클래스를 바탕으로 코딩을 하면 나중에 코드를 수정해야할 가능성이 높아지고, 유연성이 떨어지게 됩니다. 그 이유는 바로 변화에 약하기 때문입니다. 인터페이스에 맞춰서 코딩을 하면 시스템에서 일어날 수 있는 여러가지 변화를 이겨낼 수 있습니다. 이렇게 구상클래스의 인스턴스를 만드는 부분을 찾아서 분리/캡슐화 하기 위해서 바로 팩토리 패턴을 씁니다.팩토리 메소드 패턴에서는 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만..