我正在爲新的Web API創建C#包裝庫。基於接口的設計和可選的方法參數
該服務提供了一組幾個API,其中每個方法接收多個必需參數,以及幾個可選參數(每個方法可能會接收不同的強制/可選參數)。
的參數在POST方法發送的,作爲PARAM的一個長字符串=值& param2的=值2 & ....
已經習慣於接口基於設計 - 它是一個良好的配合在該案件?
我無法找到一個很好的解決方案,將所有的API方法和參數映射到一個接口中,而不會創建一個方法重載,創建一個大混亂,這會讓用戶更難使用。
什麼它可能看起來像例子:
public interface IServiceAPI
{
void MethodA(string mandatory, string mandatory2);
void MethodA(string mandatory, string mandatory2, int optional);
void MethodB(string mandatory);
... etc
}
- 我知道在.NET 4中引入的可選參數這不是一個很好的解決方案,因爲這個庫是針對較低版本.NET,還因爲「可選參數」實際上只是一種設置默認值的方法,而不是爲參數不發送任何值。
是基於接口的設計在這裏很適合嗎?或者換句話說 - 界面設計最適合的地方在哪裏?
爲什麼不使用可選參數void MethodA(string mandatory,string mandatory2 = String.Empty,int optional = 0); – Habib
查看我更新的問題。 –
基於界面的設計究竟是什麼意思?你的意思是編程接口而不是實現?如果你不使用'基於接口的設計',你會怎麼做? –