본문 바로가기
728x90
반응형
SMALL

Design Pattern5

Singleton Pattern 프로그램을 실행할 때 보통 많은 인스턴스가 생성된다.예를 들어 java.lang.String 클래스의 인스턴스는 문자열 1개에 대해서 1개가 생성되기 때문에 문자열 1,000 개 등장하면 1,000 개의 인스턴스가 만들어 진다. 그러나 '클래스의 인스턴스가 단 하나만 필요' 한 경우도 있다. 물론 주의를 기울여 new MyClass() 가 1회만 실행되도록 작성하면 된다. 그러나 '프로그래머가 주의를 기울여서 1개만 생성되는 것' 이 아니라 - 지정한 클래스의 인스턴스가 절대로 1개밖에 존재하지 않는 것을 보증 하고 싶을 때- 인스턴스가 1개밖에 존재하지 않는 것을 프로그램 상에서 표현하고 싶을 때 우리는 Singleton 패턴을 사용한다. Singleton class를 만들어 보자. public cla.. 2013. 12. 21.
Factory Method pattern Template Method pattern 는 상위 클래스에서 뼈대를 만들고, 하위 클래스에서 구체적인 처리의 내용을 만들었다.이 패턴은 인스턴스 생성에 위 패턴을 적용한 것이다. 즉 인스턴스를 생성하는 곳을 template method pattern으로 구성한 것이Factory Method pattern 이다. 예제 프로그램) IDCard 생성 공장 public abstract class Product { public abstract void use();} public abstract class Factory { public final Product create(String owner){ Product p = createProduct(owner); return p; } protected abstract.. 2013. 12. 21.
Template Method pattern 상위 클래스쪽에 템플릿에 해당하는 메소드가 정의되어 있고, 그 메소드의 정의 안에는 추상 메소두가 사용되고 있다. 따라서 상위 클래스의 프로그램만 보면 추상 메소드를 어떻게 호출하고 있는지 알 수 있지만, 최정적으로 어떤 처리가 수행되는지는 알 수 없다.추상 메소드를 실제로 구현하는 것은 하위 클래스이며 서로 다른 하위 클래스가 서로 다른 구현을 실행하면 서로 다른 처리가 실행 될 것이다. 그러나 어떤 하위 클래스에서 어떤 구현을 하더라도 처리의 큰 흐름은 상위 클래스에서 결정한대로 이루어진다.이와같이 상위 클래스에서 처리의 뼈대를 결정하고, 하위 클래스에서 그 구체적인 내용을 결정하는 디자인 패턴을 Template Method pattern 이라고 한다. 예제 프로그램) 문자나 문자열을 5회 반복해서 .. 2013. 12. 21.
Adapter pattern '이미 제공되어 있는 것' 과 '필요한 것' 사이의 '차이' 를 없애주는 디자인 패턴. Wrapper pattern 으로 불리기도 한다. Adapter pattern의 등장인물- Target(대상) 의 역할 (아래 예제에서 Print interface or Print class)- Client(의뢰자) 의 역할 (아래 예제에서 Main class)- Adaptee(개조되는 쪽)의 역할 (아래 예제에서 Banner class)- Adapter의 역할 (아래 예제에서 PrintBanner class) - 클래스에 의한 Adapter pattern (상속을 사용한 Adapter pattern) 예제 프로그램) 문자열을 괄호로 묶어 표시하는 showWithParen() 과 * 로 묶어 표시하는 showWithA.. 2013. 12. 21.
728x90
반응형
LIST