我對我正在開發的應用程序中過度使用接口有一些擔憂。這是一個報告應用程序,它只是執行SQL語句並分析一些存儲列屬性的XML。是否所有的對象都有一個接口?
我已經結束了爲每個類創建接口,所以我可以換出實現。我們都看到某種形式的以下內容:
interface IFoo
{
IBar GetBar();
}
class FooA : IFoo
{
IBar GetBar()
{
return new BarA();
}
}
class FooB : IFoo
{
IBar GetBar()
{
return new BarB();
}
}
我理解的優勢,以發展這種方式包含具體的實施細則類,而應這種模式應遵循的在我的應用程序的每個類?
這裏是我的應用程序(簡體)例如:
interface IColumnDefinition
{
int Ordinal { get; }
string HeaderColor { get; }
}
class ColumnDefinition : IColumnDefinition
{
private readonly int _ordinal;
private readonly string _headerColor;
public int Ordinal { get { return _ordinal; } }
public string HeaderColor { get { return _headerColor; } }
public ColumnDefinition(int ordinal, string headerColor)
{
_ordinal = ordinal;
_headerColor = headerColor;
}
}
如果我只是分配一個以後可以使用只讀屬性值,什麼是真正創造這個單獨IColumnDefinition接口的地步?
微軟不在他們的System.Data.DataColumn
或他們的System.Windows.Forms.DataGridViewColumn
中使用接口,對我來說是否合理使用它,爲什麼? PS:請不要把我釘死在十字架上,因爲微軟不做任何事情,我也不應該 - 這些只是廣泛使用的類似對象的兩個例子,由知道更多的人創建關於編程比我
請參閱[只是我或接口過度使用?](http://stackoverflow.com/questions/90851/is-it-just-me-or-are-interfaces-overused) – Romoku 2013-03-28 02:10:59