Groovy Category
Groovy Goodness: Use Categories to Add Functionality to Classes
Method Injection에 사용한다. Method Interception은
Groovy Meta Programming
를 사용한다.
적용 범위를 명확히하고, 범위를 벗어나면 원본 클래스를 보존 시켜주기 때문에 side-effect가 버지는 것을 막을 수 있다.
카테고리 블록에 대한 진입/탈출이 빈번하면 scope 생성/메소드 추가/scope 초기화가 반복적으로 일어나면서 성능 저하가 발생한다. 따라서 반복문 같은데서 사용할 때 반복문 밖으로 카테고리를 지정하는 등의 최적화가 필요하다.
현재 쓰레드 안에서만 적용된다.