인터페이스를 만족하는 메소드/속성의 존재를 확인하여 동적 유형 지정을 사용하여 인터페이스를 적용하는 루비의 방법에 대해 준비를 마쳤습니다.회원 검증 vs 인터페이스
인터페이스를 사용하는 것보다 전반적으로 더 좋은 디자인 원리는 무엇입니까? 찬성/반대 의견은 무엇입니까? 예를 들어 당신이 C#에서 동일한 개념을 구현할 수하지만,
public class Foo
{
public Foo(dynamic _obj)
{
MethodInfo[] methods= _obj.GetType().GetMethods();
if (!methods.Any(x => x.Name == "SomeRequiredMethod")
{
throw new ArgumentException("Object does not meet interface requirements.");
}
}
// proceed with functionality that requires the method
}
를가 같은 값을 가질 것입니다 있는지 확실하지 않습니다 물론 당신이 서명처럼 그냥 이름보다 더 확인하기 위해 확장 할 수, 반환 유형 등
생각하십니까? 나는이 방법 몇 가지 주요 문제 문제 볼 수 있습니다
Ruby는 성능에 영향이 있는지 어떻게 알 수 있습니까? 나는 39ms에 그것을 기록했다. 나는 확실히 추측 할 수있다. –
저는 Ruby에 대해 많이 알지 못합니다. 그러나 역동적 인 언어이므로, 이런 종류의 일에 확실히 더 적합합니다. 당신이주는 타이밍은 문맥 없이는 매우 유용한 정보가 아닙니다 ... 나는 당신의 방법이 무엇인지, 당신이 당신의 시험을 어떻게했는지 모른다. –