[Fluent Python] 6장 일급 함수 디자인 패턴

6장 일급 함수 디자인 패턴

전략 패턴의 리팩토링

파이썬 3.4부터는 abc.ABC 클래스를 상속해서 간단히 추상 베이스 클래스(ABC)를 선언할 수 있다. @abstractmethod라는 데코레이션을 이용한다.

고전적인 방법에서 추상 클래스는 만들어서 공통된 인터페이스를 제공했지만, 파이썬에서는 인자로 함수를 넘겨줌으로써 간단히 구현할 수 있다.

같은 인터페이스를 공유하는 함수 사이에서 최적 함수를 찾기 위해서는, 함수 리스트를 만들어서 max 함수로 비교 후 리턴하면 된다. 함수 리스트는 직접 입력할 수도 있지만, 네임스페이스를 조사해서 추가하거나, 특정 모듈에서 함수를 전부 읽어서 구현할 수 있다.

명령 디자인패턴

<디자인 패턴="">에서 명령 디자인패턴은 콜백에 대한 객체지향식 대체물로 설명하고 있다. 다시 말해, 파이썬에서는 콜러블 객체를 이용하여 구현할 수 있다. 콜러블 객체는 ```__call__()```이라는 단일 메서드 인터페이스를 구현하고 있다. ## 더 읽을거리 랄프 존슨은 <디자인 패턴=""> 발간 20주년 발표자리에서 그의 책이 '각 디자인 패턴에 대한 단계가 아니라 결과 패턴을 지나치게 강조한 것'이 약점이라고 지적하였다. * 피터 노빅의 ['동적 언어에서의 디자인 패턴'](http://bit.ly/1HGC0r5)