저는 C#이나 Java가 네임 스페이스 나 패키지를 리팩토링하는 것에 짜증납니다. 여러 클래스에서 많은 독립적 인 프로젝트에서 사용되는 공통 패키지의 클래스를 참조한 경우 해당 패키지를 현재 상위 패키지의 패키지 하위로 이동하기로 결정한 경우 이와 같은 일반 가져 오기를 사용할 수 없기 때문에 모든 클라이언트를 수정해야합니다C# 또는 Java에서 리팩터링하는 가장 쉬운 방법은 무엇입니까?
.수입 myPackage에. * 클라이언트에 영향을주지 않고 리팩토링을 허용 할
그런 작은 변화에 영향을 줄 수있을 때 어떻게 리팩토링을 할 수 있습니까?
내 통제하에 있지 않은 클라이언트의 코드 인 경우 어떻게됩니까?
ReSharper와 같은 도구를 사용하면 쉽게 할 수 있습니다. –
문제를 이해할 수 있습니다. 특히 API 개발자이고 라이브러리를 사용하는 여러 클라이언트가있는 경우 특히 그렇습니다. 대중이 공개 API를 만드는 동안 사람들은 신중하게주의를 기울입니다. 간단한 질문이 있습니다. 모든 클라이언트 코드를 제어 할 수 있습니까? (제 3 자 고객이있는 경우 운이없는 것입니다.) 이 경우 어댑터 계층을 작성하고 더 이상 사용되지 않는 경고가있는 이전 네임 스페이스에 새 코드를 표시해야합니다. –
물론, 모든 클라이언트 코드를 자신의 제어하에두면 리팩토링이 간단합니다. 모든 프로젝트를 Intellij의 동일한 프로젝트 (모듈)에 추가하고 리팩토링을 수행하기 만하면됩니다. IDEA는 프로젝트간에 공식 연결이 설정되지 않은 경우 (폴더 종속성 또는 참조 된 프로젝트 사용) 폴더 이름을 이해하고 변경합니다. –