본문 바로가기

정리/디자인패턴2

디자인패턴 - Composite(복합) 패턴 Composite(복합) 패턴 재귀적 구조(트리구조)를 만들기 위한 패턴 기본 객체들을 모아 복합 객체를 만드는 패턴 기본 객체(Leaf)와 기본 객체로 구성된 구성 객체(Composite)를 동일 한 형태로 객체를 사용하고 싶을 때 사용한다.다양한 접근방법1. 하나의 인터페이스를 상속하는 객체를 만들고 클라이언트에서 해당 객체들을 추가해서 사용한다.기본 객체들의 조합만을 사용할 수 있다. 복합 객체를 재사용할 수 없다. 예) 레고 부분들이 조합되어 집을 만들 수 있다. 하지만 그 집을 부분으로 다시 사용을 힘들 다. 적사과, 백사과, 녹사과가 모여 고장난 애플 노트북을 만들 수 있지만 고장난 애플 노트북이 모여 정상 애플 노트북을 만들 수는 없다. 2. Composite 패턴 사용 기본 객체를 조합한 .. 2017. 1. 25.
디자인 패턴 - 전략패턴(Strategy) Strategy(전략) 패턴 동일한 목적을 수행하는 여러 개의 알고리즘 중 특정 알고리즘을 선택해서 적용하기 쉽게 하고 새로 개발된 알고리즘도 쉽게 추가해서 적용할 수 있게 하는 패턴다양한 접근 방법1. 분기문switch() { case : break; case : break; } if () { } else if () { } else { }새로운 알고리즘을 추가하기 힘들다. 분기문을 수정해야 한다. 조건문이 많아 질수록 수정 및 확장 재사용이 어렵고 코드 가용성도 떨어진다.2. Context 클래스자체를 확장해서 알고리즘을 새로운 하위 클래스에 정의한다. Context context = new SubContext2(); context.method1();Context 클래스의 하위 클래스로 어떤 객체가 생.. 2017. 1. 13.