패턴 (4) 썸네일형 리스트형 [Design Pattern] Factory Method Pattern 이번 장에서는 팩토리 메서드 패턴(Factory Method)에 대해서 알아보도록 한다. 샘플 코드는 여기 (링크) 프로젝트의 테스트 코드로 정리해두었다. 이번 팩토리 메서드 패턴은 "데이터 베이스" 클라이언트를 생성하고 데이터를 Insert하는 과정을 접목시켜 알아보겠다. 팩토리 메서드 패턴이란? 부모 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴이며 자식 클래스가 어떤 객체를 생성할지를 결정하도록 캡슐화한 패턴이다. 이전에 살펴보았던 템플릿 메서드 (링크)의 생성 패턴 버전으로 볼 수 있다. GoF Design Patterns에 따르면 아래와 같은 Class Diagram이 그려진다. Product: 생성될 객체들이 구현해야 할 기능을 명시한 인터페이스. ConcreteProduct: 객체가 생.. [Design Pattern] Template Method Pattern 이번 장에서는 템플릿 메소드(Template Method) 패턴에 대해서 알아보도록 한다. 샘플 코드는 여기 (링크) 프로젝트의 테스트 코드로 정리해두었다. 이번 템플릿 메소드 패턴은 "데이터 베이스"에 데이터를 Insert, Select하는 과정을 접목시켜 알아보겠다. 템플릿 메소드 패턴이란? 특정 작업을 처리하는 일부분을 서브 클래스로 캡슐화하여 전체적인 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내용을 바꾸는 패턴이라고 많은 곳에 나와있다. 조금 쉽게 풀어보면 확장 및 수정이 자주 일어나는 코드는 서브 클래스에서 구현하고 중복되고 공통적으로 사용되는 코드는 상위 클래스에서 관리한다. 쉽게 적는다고 적었는데도 쉽지가 않다. 그림을 보면서 알아보도록 하겠다. GoF Design Patterns에 따.. [Design Pattern] Adapter Pattern 이번 장에서는 어댑터(Adapter) 패턴에 대해서 알아보도록 한다. 샘플 코드는 여기 (링크) 프로젝트의 테스트 코드로 정리해두었다. 필자는 모든 디자인 패턴을 우리 일상 생활에 접목시켜서 알아보려한다. 이번 어댑터 패턴은 "오프라인 화장품 매장"에 접목시켜 알아보겠다. 어댑터 패턴이란? 호환되지 않는 인터페이스를 클라이언트는 코드 변경없이 그대로 활용할 수 있다. 클라이언트가 사용하려는 인터페이스가 자신이 사용하는 방식과 맞지 않더라도 어댑터를 이용하여 사용할 수 있게 되는 것이다. GoF Design Patterns에 따르면 아래와 같은 Class Diagram이 그려진다. "오프라인 화장품 매장"에 접목시켜보면 아래와 같은 Class Diagram이 그려진다. 화장품을 구매하려는 고객(Custom.. [Design Pattern] Strategy Pattern 이번 장에서는 전략(Strategy) 패턴에 대해서 알아보도록 한다. 샘플 코드는 여기 (링크) 프로젝트의 테스트 코드로 정리해두었다. 필자는 모든 디자인 패턴을 우리 일상 생활에 접목시켜서 알아보려한다. 이번 전략 패턴은 유명한 햄버거 브랜드 "버거킹"에 접목시켜 알아보겠다. 전략 패턴이란? 비슷한 기능을 하는 클래스(전략)들을 캡슐화하여 이를 선택적으로 사용하는 패턴이다. 사용하는 쪽에서 선택적으로 전략을 선택하기 때문에 이를 수행하는 클라이언트 쪽의 코드는 수정이 필요없다. GoF Design Patterns에 따르면 아래와 같은 Class Diagram이 그려진다. 전략 Interface를 생성하고 이를 구현하는 ConcreteStrategyA, ConcreteStrategyB, ConcreteS.. 이전 1 다음