[Fluent Python] 6장 일급 함수 디자인 패턴
6장 일급 함수 디자인 패턴
전략 패턴의 리팩토링
파이썬 3.4부터는 abc.ABC 클래스를 상속해서 간단히 추상 베이스 클래스(ABC)를 선언할 수 있다. @abstractmethod
라는 데코레이션을 이용한다.
고전적인 방법에서 추상 클래스는 만들어서 공통된 인터페이스를 제공했지만, 파이썬에서는 인자로 함수를 넘겨줌으로써 간단히 구현할 수 있다.
같은 인터페이스를 공유하는 함수 사이에서 최적 함수를 찾기 위해서는, 함수 리스트를 만들어서 max 함수로 비교 후 리턴하면 된다. 함수 리스트는 직접 입력할 수도 있지만, 네임스페이스를 조사해서 추가하거나, 특정 모듈에서 함수를 전부 읽어서 구현할 수 있다.