我正在研究一個C#web應用程序,該應用程序具有一個帶小區域的頁面(MainPage)以顯示小工具。有幾種小工具實現主界面(IMainInterface)和可選界面(IOptionalInterface)。使用API封裝界面的目的
在的MainPage,與小工具類交互時,它使用的語法如下:
MyAPI api = new MyAPI();
api.SomeMethod(gadgetClassName, param);
而且在api.SomeMethod(...),但它下面:
// use reflection to get an IMainInterface based on gadgetClassName
Type t = Type.GetType(gadgetClassName);
IMainInterface gadget = (IMainInterface)t.InvokeMember(
gadgetClassName,
BindingFlags.CreateInstance,
null,
null,
null);
return gadget.SomeMethod(param)
看着這個MyAPI類包含了一大堆映射到IMainInterface和IOptionalInterface中定義的相應方法的方法。
我的問題,這是MyAPI類真的neccesary?如果MainPage直接訪問接口(IMainInterface和IOptionalInterface),會不會降低開銷?
更新:看到一些答案,我意識到我並不清楚「幾種小工具」是指不同的類(例如CalendarGadget,TaskGadget)。
更新2:增加更多的代碼示例
我不認爲有一個在你的問題,給你充足的回答中提供足夠的代碼。 api.SomeMethod()中的其他一些代碼是什麼?它如何使用反射? – 2009-09-16 23:59:49
修改了這個問題,以包括更多的信息在api.SomeMethod() – 2009-09-17 17:23:34