디자인패턴 7

[Java] Builder 패턴

디자인 패턴 공부용으로 블로그에 기록을 해본다. 공부에 참고한 자료로는 "Java 언어로 배우는 디자인 패턴 입문" 을 참고 하였다. 정의 구조를 가지고 있는 커다란 것을 건축하거나 구축하는 것을 build라고 한다. 클래스 설명 이름 해설 Builder 문서를 구성하기 위한 메소드를 결정하는 추상 클래스 Director 한 개의 문서를 만드는 클래스 TextBuilder 일반 텍스트를 이용해서 문서를 만드는 클래스 HtmlBuilder Html 파일을 이용해서 문서를 만드는 클래스 Main 동작 테스트용 클래스 Builder 클래스 여기서 builder 클래스는 '문서'를 만들 메소드들을 선언하고 있는 추상 클래스이다. package Builder; public abstract class Builde..

디자인패턴 2022.04.25

[Java] Singleton 패턴

디자인 패턴 공부용으로 블로그에 기록을 해본다. 공부에 참고한 자료로는 "Java 언어로 배우는 디자인 패턴 입문" 을 참고 하였다. 정의 프로그램을 실행할 때 보통 많은 인스턴스가 생성된다. 그러나 '클래스의 인스턴스가 단 하나만 필요' 한 경우도 있다. 그것은 시스템 안에서 1개 밖에 존재하지 않는 것을 프로그램으로 표현하고 싶을 때이다. 이 처럼 단 하나의 인스턴스만 생성되도록 하는 것이 Singleton 패턴이다. 클래스 설명 이름 해설 Singleton 단 하나의 인스턴스만 생성되는 클래스 Main 동작 테스트용 클래스 Singleton 클래스 package Singleton; public class Singleton { private static Singleton singleton = new ..

디자인패턴 2022.04.12

[Java] Prototype 패턴

디자인 패턴 공부용으로 블로그에 기록을 해본다. 공부에 참고한 자료로는 "Java 언어로 배우는 디자인 패턴 입문" 을 참고 하였다. 정의 Prototype이란 '원형' 이나 '모범' 이라는 의미이다. 원형이 되는 인스턴스, 모범이 되는 인스턴스를 기초로 새로운 인스턴스를 만든다. Prototype 패턴이 필요한 3가지 이유 종류가 너무 많아서 클래스로 정리할 수 없는 경우 클래스로부터 인스턴스 생성이 어려운 경우 framework와 생성하는 인스턴스를 분리하고 싶은 경우 예제 프로그램 문자열을 테두리 선으로 감싸거나 밑줄을 표시하는 프로그램 클래스 설명 패키지 이름 해설 framework Product 추상 메소드 use와 createClone이 선언되어 있는 인터페이스 Manager createC..

디자인패턴 2022.04.12

[Java] Factory 패턴

디자인 패턴 공부용으로 블로그에 기록을 해본다. 공부에 참고한 자료로는 "Java 언어로 배우는 디자인 패턴 입문" 을 참고 하였다. 정의 Factory는 말 그대로 '공장'이라는 의미이다. 인스턴스를 생성하는 공장을 Template Method 패턴으로 구성한 것이 Factory Method 패턴이 된다. Factory 패턴에서는 인스턴스를 만드는 방법을 상위 클래스 쪽에서 결정하지만 구체적인 내용은 모두 하위 클래스 쪽에서 수행한다. 따라서 인스턴스 생성을 위한 골격(framework)과 실제 인스턴스 생성의 클래스를 분리해서 생각할 수 있다. 예제 프로그램 사용자 이름을 입력받아 카드를 만들어주는 공장 형태의 프로그램. 클래스 설명 패키지 이름 해설 framework Product 추상 메소드 ..

디자인패턴 2022.04.05

[Java] Template Method 패턴

디자인 패턴 공부용으로 블로그에 기록을 해본다. 공부에 참고한 자료로는 "Java 언어로 배우는 디자인 패턴 입문" 을 참고 하였다. 정의 템플릿의 기능을 가진 패턴으로 상위 클래스쪽에 템플릿에 해당하는 메소드가 정의 되어 있고, 그 메소드의 정의 안에는 추상 메소드가 사용되고 있다. 따라서 상위 클래스의 프로그램만 보면 추상 메소드를 어떻게 사용하고 있는지 알 수 있지만, 최종적으로 어떤 처리가 수행되는지 알 수는 없다. 추상 메소드를 실제로 구현하는 것은 하위 클래스들이다. 하위 클래스 측에서 메소드를 구현하면 구체적인 처리가 결정된다. 서로 다른 하위 클래스가 서로 다른 구현을 하면 서로 다른 처리가 실행된다. 그러나 어떤 하위 클래스에서 어떤 구현을 하더라도 큰 틀은 상위 클래스에서 결정한대로 ..

디자인패턴 2022.04.03

[Java] Adapter 패턴

디자인 패턴 공부용으로 블로그에 기록을 해본다. 공부에 참고한 자료로는 "Java 언어로 배우는 디자인 패턴 입문" 을 참고 하였다. 정의 Adapter 패턴은 Wrapper 패턴으로 불리기도 한다. wrapper는 '감싸는 것' 이라는 의미이다. 일반 상품을 예쁜 포장지로 싸서 선물용 품으로 만드는 것처럼, 무엇인가 를 한번 포장해서 다른 용도로 사용할 수 있게 교환해 주는 것이 wrapper이며 adapter이다. Adapter 패턴에는 다음과 같이 두 가지의 종류가 있다. 클래스에 의한 Adapter 패턴(상속을 사용한 Adapter 패턴) 인스턴스에 의한 Adapter 패턴(위임을 사용한 Adapter 패턴) 예제 프로그램 문제에서는 교류 100볼트를 직류 12볼트로 교환해 주는 어댑터를 만든다..

디자인패턴 2022.04.03

[Java] Iterator 패턴

디자인 패턴 공부용으로 블로그에 기록을 해본다. 공부에 참고한 자료로는 "Java 언어로 배우는 디자인 패턴 입문" 을 참고 하였다. 정의 무엇인가 많이 모여있는 것들을 순서대로 지정하면서 전체를 검색하는 처리를 실행하기 위한 것입니다. 예제 프로그램 Iterator 패턴을 사용하여 서가(BookShelf) 안에 책(Book)을 넣고, 그 책의 이름을 차례대로 표시하는 프로그램을 만들어 보자 클래스 설명 이름 해설 Aggregate 집합체를 나타내는 인터페이스 Iterator 하나씩 나열하면서 검색을 실행하는 인터페이스 Book 책을 나타내는 클래스 BookShelf 서가를 나타내는 클래스 BookShelfIterator 서가를 검색하는 클래스 Main 동작 테스트용 클래스 Aggregate 인터페이스..

디자인패턴 2022.03.31
1