문제

Java 프로젝트를 분석하기 위해 PMD를 방금 설치했습니다. 정말 좋은 도구, 적극 권장합니다. 어쨌든, 나는 몇 가지 오류가 있습니다.

"추상 클래스의 빈 방법은 대신 추상적이어야합니다."

PMD 문서를 확인했고 설명에 다음과 같이 말합니다.

개발자가 적절한 코드를 코딩하기보다는이 빈 구현에 의존 할 수 있습니다.

그래서 나는이 코드 스타일 오류의 이유를 이해한다고 생각하지만 다음 시나리오를 고려하십시오. 엔티티라는 추상 클래스가 있습니다. 이 클래스에는 기본 구현이있는 부울 메소드가 있습니다. (삭제시 관련 엔티티를 삭제할지 여부를 제어합니다). 파생 된 클래스 중 일부만이 기본 동작을 true로 무시합니다.

기본 구현을 제거하고 모든 파생 클래스가 동작을 선언하도록 강요해야합니까? 이 패턴이 정말 나쁜 연습이라고 생각하십니까?

설명: PMD는 단일 반환 문의 메소드를 비어있는 것으로 취급합니다.

도움이 되었습니까?

해결책

나는 그것이 단지 가이드 라인이라고 생각합니다. 디자인을 재고하고 싶을 수도 있지만 디자인이 이미 완벽하게 이해되면 뇌 대신 소프트웨어에 순종 할 이유가 없습니다.

다른 팁

Java 1.8에 있다면 엔티티를 만들 수 있습니다. 상호 작용 추상 클래스 대신 a 기본 당신의 방법에 대한 구현.

public interface Entity {
    default boolean yourMethod() {
        //default implementation ...
    }
}

참조를 위해 이것을 사용할 수 있습니다.https://docs.oracle.com/javase/tutorial/java/iandi/defaultmethods.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top