我一直在研究空接口和抽象類,從我讀過的內容來看,它們通常是不好的做法。我打算將它們用作我撰寫的小型搜索應用程序的基礎。我會寫最初的搜索提供者,其他人也可以創建他們自己的提供者。我的代碼的意圖是強制任何人想要實現它們的類之間的關係。空接口和抽象類實施結構
有人可以叮叮噹噹地描述是否以及爲什麼這仍然是一個不好的做法,以及如果有任何替代方法可用。
namespace Api.SearchProviders
{
public abstract class ListingSeachResult
{
public abstract string GetResultsAsJSON();
}
public abstract class SearchParameters
{
}
public interface IListingSearchProvider
{
ListingSeachResult SearchListings(SearchParameters p);
}
}
這可能更適合於http://codereview.stackexchange.com/ –
什麼是空類會有用?它完全沒用。刪除它,讓你的方法期待一個「對象」。 –
你打算如何在'SearchListings'中使用'p'?你確定你不想在這個空白的界面/類中有東西嗎?如果你真的這樣做,我會用一個空的接口去做,而不是一個空的抽象類,這樣你仍然可以選擇繼承別的東西。 –