2
我已經準備好了Ruby的強制接口的方法,通過檢查滿足接口的方法/屬性是否存在動態類型。成員驗證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中的情況如何,你知道是否有性能問題?我將它定爲39毫秒,我想這肯定會加起來。 –
我對Ruby不太瞭解,但它是一種動態語言,所以它肯定更適合這種事情。你給的時間不是沒有上下文的非常有用的信息......我不知道你的方法做了什麼,以及你如何做了你的測試。 –