본문 바로가기

디자인 패턴3

템플릿 메소드(Template Method Pattern) 패턴이란? 1. Template Method Pattern 2. Example 코드로 위의 구조를 한번 만들어 보겠습니다. public abstract class AbstractClass { protected abstract void hook1(); protected abstract void hook2(); public void templateMethod() { hook1(); hook2(); } } 다음은 ConcreteClass 입니다. public class ConcreteClass extends AbstractClass { @Override protected void hook1() { System.out.println("ABSTRACT hook1 implementation"); } @Override prot.. 2020. 7. 13.
빌더 패턴(Builder Pattern)이란? 1. Builder Pattern 인스턴스를 생성할 때 생성자만을 통해서 생성하게 되면, 생성자를 일일이 정의를 해줘야 한다던가 생성자에 들어갈 변수의 순서를 맞춰야하는 등의 불편함이 있습니다. 빌더 패턴은 이 문제를 해결하기 위해 고안된 패턴 중 하나 입니다. 인스턴스를 생성할 때 인자를 선택적으로 가독성 좋게 넘길 수 있다. 인자의 순서에 상관이 없어진다. 불필요한 생성자를 만들지 않는다. 2. 빌더 패턴을 사용 하는 경우 빌더 패턴은 많은 Optional한 멤버 변수(혹은 파라미터)나 지속성 없는 상태 값들에 대해 처리해야 하는 문제들을 해결합니다. 예를 들어, 팩토리 패턴이나 추상 팩토리 패턴에서는 생성해야하는 클래스에 대한 속성 값이 많을 때 아래와 같은 이슈들이 있습니다. 클라이언트 프로그램으.. 2020. 7. 13.
팩토리 메소드 패턴(Factory Metod Pattern)이란? 1. Factory Method Pattern 팩토리는 공장이라는 뜻입니다. 즉 팩토리 메소드 패턴도 무엇인가를 만들어내는 공장이라고 생각하면 됩니다. 객체를 만들어내는 부분을 서브 클래스에 위임하는 패턴. 즉, new 키워드를 통해서 객체를 만드는 코드를 서브 클래스에 위임하겠다는 것입니다. 결국 팩토리 메소드 패턴은 객체를 만들어내는 공장을 만드는 패턴이라고 생각하시면 됩니다. 2. Example 이제 예제를 진행하면서 알아보겠습니다. 예제에서 사용할 객체는 "로봇"입니다. 여러 종류의 로봇을 만드는 공장을 생성해보겠습니다. 2.1 Structure 예제에서 만들 로봇의 종류는 "SuperRobot"과 "PowerRobot"입니다. 그리고 로봇을 생산해내는 로봇공장은 "SuperRobotFactoy".. 2020. 7. 13.