2012-01-31 64 views
1

我想知道接口是否會在運行時帶來任何好處。接口優化代碼?

比方說,我有一個處理一個非常大/複雜的對象的管理器。如果這個對象需要與許多不同的邏輯進行交互,那麼讓它爲每個特定的邏輯實現一個接口,然後將它作爲特定的接口傳遞是有好處的。這會以任何方式提高性能嗎?

回答

1

這不會是一個改進。您可以將接口看作是表示實例的不同方式。無論您使用哪種表示(接口),都不會改變實例本身的特性。例如,很多類實現了IDisposable。像IDisposable一樣傳遞這樣的實例不會改變對象行爲的其餘部分,並且不會使其Dispose()邏輯更加高效。

7

這會以任何方式提高性能嗎?

不,這對性能沒有影響。

但是,接口還有其他優點,特別是在您的實現細節與所需的API分離以及在整個系統中傳遞的方面。

2

您可以通過接口(和實現)設計您的軟件,以實現您的軟件組件鬆散耦合,並允許在特定行爲的不同具體實現中進行選擇。 這與性能無關,如果您想提高性能,您可以調查代碼的其他方面,通常可以通過修改實現部分來獲得性能優勢,而不是以您實現代碼的方式來實現。