고유 한 유형 안전성을 가진 언어를 가정하면 (예 : JavaScript가 아님) :
a를 받아들이는 방법이 주어지면 SuperType
대부분의 경우 유형 테스트를 수행하여 작업을 선택하려는 유혹을받을 수 있습니다.
public void DoSomethingTo(SuperType o) {
if (o isa SubTypeA) {
o.doSomethingA()
} else {
o.doSomethingB();
}
}
항상 그렇지는 않지만 일반적으로 하나의 재정의 가능한 메소드를 작성하고 다음 SuperType
을 수행해야합니다.
public void DoSomethingTo(SuperType o) {
o.doSomething();
}
... 각 하위 유형에는 자체 doSomething()
구현 이 제공 됩니다. 우리의 응용 프로그램의 나머지 부분은 주어진 SuperType
것이 실제로 a SubTypeA
인지 또는 a 인지를 알지 못할 수 있습니다 SubTypeB
.
훌륭한.
그러나 우리는 여전히 is a
모든 타입 안전 언어에서 대부분 같은 작업을 수행하고 있습니다. 그리고 이는 명시 적 유형 테스트가 필요하다는 것을 암시합니다.
그럼, 상황이있는 경우, 해야 우리 또는 있어야 우리는 명시 적 유형의 테스트를 수행?
결석 한 마음이나 창의력 부족을 용서하십시오. 나는 내가 전에 한 일을 알고있다. 그러나 솔직히 오래 전에 내가 한 일이 좋았는지 기억할 수 없었습니다! 그리고 최근의 기억에서 카우보이 JavaScript 외부에서 유형을 테스트 해야 한다고 생각하지 않습니다 .