거대한 코드베이스에서 불쾌한 점을 리팩터링하고 특정 구현 방법을 사용하여 특정 인터페이스를 구현하는 특정 메소드를 호출해야하는 경우를 찾아야합니다. 그 인터페이스.특정 하위 유형으로 호출 될 때 특정 메소드의 사용법 찾기
예를 들어, NastyStatic
은 DoBadThings(IBusinessObject)
입니다. 저의 비즈니스 라이브러리에 IBusinessObject
을 구현하는 약 50 개의 클래스가 있습니다 (예 : DontHurtMe : IBusinessObject
).
NastyStatic.DoBadThings(foo)
에 대한 모든 전화는 어떻게 찾을 수 있습니까? foo
은 DontHurtMe
의 인스턴스입니까?
편집 : 나는 일종의 정적 분석 도구를 사용하고 있습니다. DoBadThings
(또는 이와 유사한)에서 동적 감시를 설정하고 응용 프로그램을 실행하는 것은 실제로 옵션이 아닙니다. DontHurtMe
에 대한 변경 사항으로 인해 예외가 이미 throw되며 모든 사용법을 찾기에는 너무 많은 코드 경로가 있습니다 (최소한 라이브가 시작되고 사용자가 불평하기 시작할 때까지).
DoBadThings 메서드에 어떤 종류의 추적을 추가하고 응용 프로그램을 실행하는 것을 포함하지 않는 앤서가 존재한다면 놀라실 것입니다 (매우 흥미 롭습니다). –
@xorcrud 그건 내가 너무 피하고 싶습니다 .--)도 있습니다. 많은 코드 경로, 그리고 이미 예외를 throw합니다. –
어쨌든 리팩토링하는 데 어떻게 도움이 될까요? – Dyppl