decorator

    [Design patterns] Decorator Pattern (데코레이터 패턴)

    [Design patterns] Decorator Pattern (데코레이터 패턴)

    Introduction 오늘 소개할 내용은 데코레이터 (Decorator) 패턴으로, 그 기능을 요약하자면 다음과 같다. 클래스 내용을 수정하지 않으면서 동적으로 오브젝트에 기능을 추가할 수 있다. 본 글의 많은 부분은 에릭 감마의 GoF Design Pattern 서적에서 참고했고, 파이썬에 맞추어 아주 살짝씩 변경한 부분이 있다. Motivation 전체 클래스 오브젝트의 동작을 수정하는 대신 특정 오브젝트에만 어떤 기능을 동적으로 추가해야 할 때가 있다. 즉, 기존에 작성된 클래스 코드를 전혀 건드리지 않으면서도 새로운 기능을 자유롭게 얼마든지 추가할 수 있으며, 기능이 추가되어도 외부에서는 기존 오브젝트와 동일하게 상호작용 할 수 있어야 한다. 코드 수정 없이 기능을 추가하기 위해 기존 클래스를 ..