* Operation 은 보통 Method 와 비슷한 의미로 쓰이며 객체가 수행할 수 있는 연산을 의미한다. 엄격하게는 Operation 에 대한 특정한 하나의 구현을

Method 라고 부른다. Polymorphism 을 지원할 경우 한 Operation 은 여러 Method 를 가질 수 있다.



* TDD 에서 사용되는 Design Pattern

> Command

- 계산 작업에 대한 호출을 메시지가 아닌 객체로 표현

> Value Object

- 객체가 생성된 이후 그 값이 절대로 변하지 않게 하여 별칭 문제가 발생하지 않게 한다

> Null Object

- 계산 작업의 기본 사례를 객체로 표현

> Template Method

- 계산 작업의 변하지 않는 순서를 여러 추상 메서드로 표현한다. 이 추상 메서드들은 상속을 통해 특별한 작업을 수행하게끔 구체화된다.

> Pluggable Object

- 둘 이상의 구현을 객체를 호출함으로써 다양성을 표현한다.

> Pluggable Selector

- 객체 별로 서로다른 메서드가 동적으로 호출되게 함으로써 필요 없는 하위클래스의 생성을 피한다

> Factory Method

- 생성자 대신 메서드를 호출함으로써 객체를 생성한다

> Imposter

- 현존하는 프로토콜을 갖는 다른 구현을 추가하여 시스템에 변이를 도입한다 (요즘 날의 Test-Double 을 이용한 패턴을 뜻함)

> Composite

- 하나의 객체로 여러 객체의 행위 조합을 표현한다.

> Collecting Parameter

- 여러 다른 객체에서 계산한 결과를 모으기 위해 매개 변수를 여러 곳으로 전달한다


* TDD의 사용 단계에 따른 Design Pattern 분류


패턴

 테스트 작성

리팩토링 

 Command

 O


Value Object

 O

 

Null Object

 

 O

 Template Method

 

 O

Pluggable Object

 

 O

 Pluggable Selector

 

 O

 Factory Method

 O

 O

 Imposter

 O

 O

 Composite

 O

 O

 Collecting Parameter

 O

 O



+ Recent posts