我一直在研究空接口和抽象类,从我读过的内容来看,它们通常是不好的做法。我打算将它们用作我撰写的小型搜索应用程序的基础。我会写最初的搜索提供者,其他人也可以创建他们自己的提供者。我的代码的意图是强制任何人想要实现它们的类之间的关系。空接口和抽象类实施结构
有人可以叮叮当当地描述是否以及为什么这仍然是一个不好的做法,以及如果有任何替代方法可用。
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'?你确定你不想在这个空白的界面/类中有东西吗?如果你真的这样做,我会用一个空的接口去做,而不是一个空的抽象类,这样你仍然可以选择继承别的东西。 –