내 동료가 기본 클래스 또는 인터페이스를 만드는 중 하나를 선택하기위한 규칙을 제시했습니다.
그는 말한다 :
구현하려는 모든 새로운 방법을 상상해보십시오. 그들 각각의 경우,이 고려 : 이 방법은 하나 개 이상의 클래스에 의해 구현 될 것입니다 정확히 없이,이 양식에 어떤 변화? 대답이 "예"이면 기본 클래스를 작성하십시오. 다른 모든 상황에서는 인터페이스를 만듭니다.
예를 들면 다음과 같습니다.
클래스 고려
cat하고dog클래스를 확장mammal하고 하나의 방법이를pet(). 그런 다음alligator아무 것도 확장하지 않고 단일 메소드를 가진 클래스를 추가합니다slither().이제
eat()모든 메소드에 메소드를 추가하려고 합니다.의 구현 경우
eat()방법은 정확히 동일합니다cat,dog그리고alligator, 우리는 기본 클래스 (하자 말, 작성해야animal하는 구현이 방법을).그것의 구현의 경우,
alligator사소한 방법으로 다르다, 우리가 만들어야IEat인터페이스와 메이크업을mammal하고alligator그것을 구현합니다.
그는이 방법이 모든 경우를 포괄한다고 주장하지만 그것은 지나치게 단순화 된 것처럼 보인다.
이 규칙을 따르는 것이 가치가 있습니까?
is a및 인터페이스가 acts like나 is. 개 is a포유 동물과 acts like먹는 사람 이요 이것은 포유류가 학급이어야하고 먹는 사람은 인터페이스 여야한다는 것을 말해 줄 것입니다. 항상 매우 유용한 안내서였습니다. (!) 참고 :의 예는 is것 The cake is eatable또는 The book is writable.
alligatorS '의 구현eat이 허용하는지에 당연히 다르다cat및dog매개한다.