我對使用具體類和接口的影響有一些疑問。OO原則:c#:設計爲接口而不是具體類
說的代碼(稱之爲
chunkCode
)一些大塊使用具體類A
。我是否需要重新編譯chunkCode
如果:- 我在
A
中添加了一些新的公共方法?如果是這樣,那是不是有點道理?畢竟我仍然提供接口chunkCode
依靠。 (或者我必須重新編譯,因爲chunkCode可能永遠不會知道這是真的,我沒有省略一些API) - 我添加一些新的私有方法到
A
? - 我爲
A
添加了一個新的公共字段? - 我添加一個新的私人領域
A
?
- 我在
工廠設計模式: 主代碼並不在乎對象的具體類型是什麼。它僅依賴於API。但是如果只有幾種方法只與一種具體類型相關,你會怎麼做?這種類型實現了接口,但增加了更多的公共方法?你會使用一些
if (A is type1)
語句(或類似的)的主要代碼?
感謝任何澄清
你可以添加一些示例代碼?一般來說,如果一個接口沒有改變,你將不需要重新編譯,但是如果你正在對付具體的類,你會的。 – davecoulter
哈,大家都在編輯這篇文章。我更喜歡項目列表... – celavek