본문 바로가기

디자인패턴5

템플릿 메소드(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.
MVC 패턴이란 웹개발을 하면서 MVC 패턴을 숨쉬듯이 사용하고 있지만, 누군가에게 MVC 패턴을 설명하라고 한다면 빠르게 답변이 나오지 않을 것 같아 MVC 패턴에 대해서 한번 정리를 하려고합니다. 1. MVC 패턴이란? MVC 패턴은 Model-View-Controller의 약자입니다. 응용프로그램을 3가지의 구성요소로 역할을 나누어서 개발하는 방법론입니다. Controller : Model과 View를 연결해주는 역할을합니다. Controller는 Model을 통해 필요한 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어하여 사용자에게 전달합니다. Model과 View가 각각 무엇을 해야할지를 알고 있으며 통제합니다. Model과 View가 서로 이야기 할 수 없게 합니다. Model .. 2020. 3. 24.
디자인패턴이란 1. 디자인패턴이란? 디자인 패턴은 "일반적인 설계 문제를 특별한 맥락으로 해결하기 위해 객체와 클래스를 전달하는 방법을 맞춘 것"입니다. 디자인 패턴은 공통적인 애플리케이션 설계 문제의 해법입니다. 객체 지향 프로그래밍에서는 대단위 소프트웨어 아키텍처보다는 보통 객체 생성 및 객체 간 상호 작용 문제를 해결하는데 디자인 패턴을 주로 사용합니다. 디자인 패턴에서는 대개 클래스 다이어그램으로 클래스 간 관계와 소통하는 과정을 나타냅니다. 디자인 패턴은 크게 생성, 구조, 행위 패턴으로 분류합니다. ● 생성패턴: 객체 생성, 초기화, 클래스 선택에 관한 패턴 ● 행동패턴: 객체 간 소통, 메시징, 상호 작용에 관한 패턴 ● 구조패턴: 클래스와 객체 관계를 조직하는 패턴. 관련된 객체를 서로 묶어 원하는 로직.. 2019. 10. 8.