플러그인 대신 다시 쓰기를 사용하는 분명한 이유는 개인, 보호 또는 최종 방법 을 재정의해야 할 때입니다 입니다.
그러나 다음 시나리오도 고려하십시오.
첫 번째 시나리오 (절대 정렬 순서) :
플러그인 전에 코드를 실행 해야 할 때 다시 쓰기가 유용 할 수 있습니다 . plugin을 설정하여 수행 할 수 있다는 것을 알고 sortOrder
있지만 누군가 (다른 사람이 아닌) 타사 구성 요소를 설치할 때 코드가 항상 첫 번째 코드가 될 것이라고 확신 할 수 없습니다.
두 번째 시나리오 (코드 제외) :
메소드에서 일부 코드 만 제외하거나 다시 작성 해야하는 경우 플러그인이 최적의 방법이 아닐 수 있습니다. around
플러그인을 사용하고 호출을 피할 수 있다는 것을 알고 proceed
있지만 스택의 다른 플러그인을 손상시킬 수 있습니다.
세 번째 시나리오 (코드 스타일) :
동작 을 다시 작성해야 할 때는 다시 작성을 사용해야하며, 플러그인을 사용 하여 출력 을 수정해야합니다. 하거나 코드를 실행 전후에 실행 .
플러그인 은 다른 모듈이 손상되지 않도록 항상 원래 코드 를 실행해야 합니다.
내 결론 :
핵심 방법을 입력과 하나의 출력을 가진 블랙 박스 로 간주 할 수 있고 내부 메커니즘에 대해 무관심한 경우 플러그인이 가장 좋습니다.
내부 동작 을 변경 해야하는 경우 다시 쓰기가 가장 좋습니다.