내 동료가 기본 클래스 또는 인터페이스를 만드는 중 하나를 선택하기위한 규칙을 제시했습니다.
그는 말한다 :
구현하려는 모든 새로운 방법을 상상해보십시오. 그들 각각의 경우,이 고려 : 이 방법은 하나 개 이상의 클래스에 의해 구현 될 것입니다 정확히 없이,이 양식에 어떤 변화? 대답이 "예"이면 기본 클래스를 작성하십시오. 다른 모든 상황에서는 인터페이스를 만듭니다.
예를 들면 다음과 같습니다.
클래스 고려
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
.
alligator
S '의 구현eat
이 허용하는지에 당연히 다르다cat
및dog
매개한다.