2016-11-17 3 views
0

추출 및 대체 리팩토링을 실습 할 때 추출 된 방법의 액세스 수정자가 개인에서 보호로 변경되는 매우 숙련 된 코치 및 강사의 사례가 자주 있습니다.리팩토링 실습 강제 "보호 된"수정 자의 추출 및 재정화

protected CollectResultReader loadRecordFromOutFile() { 
    return CollectResultReader.factory("../record.json"); 
} 

위 예제에서 코드가 추출 된 후 IDE는 대상 코드에 개인 한정자가있는 새로운 메서드를 만들었습니다. 그것이 바람직한 행동입니다. 테스트중인 클래스를 재정의 할 수 있도록 다시 편집되었습니다. 이는 생산 코드가 재 설계 가능성을 상실하고 원치 않는 액세스를 얻었 기 때문에 바람직하지 않습니다.

순수 Java와 조롱 프레임 워크를 사용하고 싶습니다. 단위 테스트를 동일한 패키지의 다른 경로에 보관합니다.

내 질문 : 왜 메소드 패키지를 비공개 (수정 자 없음)로 설정하지 않습니까?

가에서 패키지 개인 수정을 참조하십시오 :만큼 당신이 같은 패키지에서 테스트 클래스를 유지할 수 Controlling Access to Members of a Class

답변

0

을, 그것을 protected 만들 이유가 없다. 개인 패키지로 충분합니다.

저는 프로젝트에서 일해 왔습니다. 프로젝트에서 내가 그들을 보호하도록 강요당했습니다. 패키지 개인은 avarage Java 개발자가 알고있는 것이 아닙니다.

+0

내 생각에 베타 라이드에게 감사드립니다. 나는 개발자들의 총체가 패키지를 개인적으로 피하는 이유에 대해 궁금해했다. – otembajelle