2012-05-25 2 views
1

아마 일반적인 질문 있지만 인터페이스 (서비스), 그것의 구현 (ServiceImpl에서는)가 나쁜 관행으로 간주하지만, ServiceImpl에서는개인 유틸리티 메소드를 포함한다 인터페이스에 포함되어 있지 않습니까?인터페이스 모범 사례

답변

9

전혀 나쁜 습관이 아닙니다. 거의 비공식 구체적인 구현 클래스에 개인 메서드가 포함되어있을 것으로 기대합니다. 대안은 종종 클래스 내에 너무 많은 메소드 본문을 갖는 것입니다.

바깥 쪽 바깥 쪽을 잊지 마세요. 수업에서 개인 방법이 많은지 아닌지 신경 써야합니다. 그들은 공개 API (또는 관련 패키지/보호 된 API)에만 관심을 가져야합니다.

5

전혀 아니요, 정확히 무엇을해야합니다.

5

인터페이스에 대한 이유는 계약을 정의한다는 것이므로 구현시 해당 계약을 작동시키는 데 필요한 임의의 수의 개인 메소드가있을 수 있습니다.

이것은 결코 나쁜 습관으로 간주되지 않습니다.이 클래스에 구현 클래스를 추가하면 공용 메서드를 제공 할 수 있습니다.

인터페이스가 제공하는 API로 작업하는 대신 구현 클래스의 공개 메소드를 사용합니다. 이는 매우 일반적인 노트에서 나쁜 습관입니다.하지만 피할 수없는 경우가 있습니다.

5

아니요. 괜찮습니다. 서비스 인터페이스는 세계에 공개하고자하는 것을 나열합니다. 구현 방법은 귀하에게 달려 있습니다. 이러한 개인 유틸리티 메서드를 사용하여 인터페이스를 구현하면 괜찮습니다.