所以,我在下面的結構寫兩個接口:C# - 接口設置屬性{獲取,設置}另一個接口
public interface IBar
{
string DoStuff();
}
public interface IFoo
{
IBar Bar { get; set; }
}
在我執行的IFoo
,我必須做這樣的事情:
public class FooImpl : IFoo
{
private BarImpl _barImpl;
public IBar Bar
{
get { return _barImpl }
set { _barImpl = (BarImpl) value }
}
}
然後我會永遠在使用它,除非我管理,我不希望一些隱含的運營商圍繞鑄造的東西。
那麼,有沒有更好的辦法,以繞不投的東西,也許對我實施清潔Property { get; set; }
寫?
編輯 只是爲了澄清爲什麼我(認爲)我需要它是這樣的:比方說,我FooImpl
我需要的BarImpl
具體方法一起工作。但DoStuff()
,這是所有IBars
共同可能會從另一個地方如fooImpl.Bar.DoStuff()
調用。那有意義嗎?
謝謝!
FooImpl *是否需要* BarImpl? –
這是糟糕的設計,你不應該投射到'BarImpl',而應該把它當作'IBar'。如果你不能/不會那麼做,你應該把'Bar'屬性的類型設置爲'BarImpl'來開始。 –
請看我的編輯 –