Design Patterns 5

디자인 패턴 강좌 - Builder

이번 강좌에서는 GoF의 분류에 따라 생성(Creational) 디자인 패턴 중 하나인 Builder 패턴을 소개합니다. Builder패턴은 여러 개의 복잡한 객체를 모아 합성을 하는 공정이 있고, 복합 객체의 생성알고리즘이 요소 객체들 각각의 생성방법과 조립방법에 독립적일 때 쓰입니다. 도대체 이게 무슨 소릴까요? 좀 더 쉽게 이야기 하면 객체들을 조립하는 인터페이스만 외부에 공개하고 내부에 실제 생성되는 객체들을 숨기자~ 하는 것이지요. 예제를 한 번 볼까요? 요구사항이 다음과 같이 주어졌습니다. 어떤 내용을 포함하는 문서를 Text와 HTML 포맷으로 작성하도록 하여, HTML을 지원하지 않는 디바이스에서도 내용을 볼 수 있도록 한다. 즉, 다음과 같은 출력결과를 가지도록 하는 게 목표입니다. ==..

디자인 패턴 강좌 - Abstract Factory

이번 강좌에서는 GoF의 분류에 따라 생성(Creational) 디자인 패턴 중 하나인 Abstract Factory 패턴을 소개합니다. Factory Method 패턴에서는 상속을 이용하여 객체 생성을 파생클래스에게 위임하여 실제 생성되는 객체는 파생 클래스가 결정하도록 하였습니다. 이와 유사한 디자인 패턴으로 Abstract Factory 패턴이 있습니다.Abstract Factory 패턴은 Factory와 Product를 추상화 시켜 Abstract 클래스를 선언하고,실제 구현은 그 하위 클래스에게 위임하도록 합니다. 예를 들어 다음과 같은 요구사항을 구현해 봅시다. 아이스크림을 만드는 공장(IcecreamFactory)이 있습니다.이 공장에는 딱딱한 하드(Hard)를 만드는 라인과 부드러운(Sof..

디자인 패턴 강좌 - Factory Method

GoF의 분류에 따라 생성(Creational) 디자인 패턴 중 하나인 Factory Method 패턴을 소개합니다. 다음과 같이 문제상황이 주어졌습니다. 사용자 이름을 멤버 변수로 가진 CreditCard클래스가 있고, CreditCard 객체가 사용될 때 어떤 operation(use())을 하고자 합니다. 처음에는 이렇게 간단히 구현할 겁니다. Main.java public class Main { public static void main(String[] args) { CreditCard card = new CreditCard("홍길동"); card.use(); } } CreditCard.java public class CreditCard { public static final String USED..

GoF의 Patterns 분류 (Gang of Four Design Patterns Classified)

Creational Patterns객체를 생성하는 더 나은 방법을 제시 Factory Method객체를 생성하는 interface를 정의instance를 만들 class의 결정은 subclass가 담당함class를 instance 화 하는 시점을 subclass 에서 수행하도록 지연시킴 Abstract Factory구체적인 class를 지정하지 않고관련성 있는 객체의 집합을 생성하거나서로 독립적인 객체들의 집합을 생성할 수 있는 interface를 제공 Builder 복잡한 인스턴스를 조립. 각 부분에 대한 구현부를 나누어 이를 조립하여 큰 기능을 수행함. Prototype 클래스 이름을 지정하지 않고 인스턴스를 복사하여 생성. - 종류가 너무 많아 한 개의 클래스로 할 수 없는 경우 - 클래스로부터 인..

디자인 패턴 강좌 - 들어가며

2002년 JAVA를 공부하면서 OOP 개념을 처음 접하고 SCJP 자격증도 땄지만,코딩 수준은 순차적 프로그래밍에서 크게 벗어나지 못했습니다. 그리고 부산에 잠시 학원을 다녔을 때 구모 선생님의 권유로 디자인 패턴을 알게 되고 독학을 했었지요. 매번 패턴을 공부할 때 마다 느끼는 것은 다음과 같았습니다. - 배우기 어렵다. - 머리로는 이해를 하겠는데 저런 문제 상황이 닥쳐도 과연 저런 패턴을 적용해서 설계를 할까? - GoF가 정리한 패턴이 23개인데 이것들만 학습해도 돌아서면 까먹는다. 최근에 디자인 패턴 외부 교육을 받고 나서는 이전에 혼자 공부할 때 보단 이해도가 더 높아졌지만, 자꾸 쓰지 않다 보면 까먹게 되는게 당연지사라고 생각되어 이번 기회에 패턴을 제 나름대로 정리해 보고자 합니다. 심책..