2011-09-02 154 views
0

我聽說有些人反對使用internal改性劑隱藏在它們被聲明,因爲它違背了OOP的主要原則組件外部類和成員。這是真的嗎?「內部」修飾符和OOP原則

+0

問他們他們是否曾經使用* sealed *關鍵字。熟練設計師的真實標誌。 –

回答

3

這是真的嗎?

不,這是不正確的。內部可見性修飾符有其用法。有些課程你不想在其包含的程序集之外使用,但仍然需要在程序集中公開。例如,如果你正在設計一個API,那麼你可能會有一些你不想公開給你的API消費者的類。

+0

但內部方法...我們使用它們,因爲我們不能再使用「測試引用」。 – riezebosch

0

那麼人們可以自由發表意見。我不確定「內部」如何擊敗OOP的主要原則。也許一個鏈接會幫助我評估他們的立場。

我使用internal來隱藏我不希望組件外部任何人使用的類型。這是在我看來親OOP

  • 暴露的行爲,但隱藏實現。
  • 使用最嚴格的訪問可能

例如我重構了2種公共類型中的一些通用代碼;這個新類型從內部開始。除非某些客戶端/測試驅動我增加可視性。此外,我有時會將它作爲臨時作弊來避免爲某些類型編寫測試(所有公共類型都應該有測試)。它爲我服務的很好。

0

內部關鍵字允許如果是用來由另一個組件開發者隱藏組件的成員。例如,在.NET框架中,有許多內部類型,這意味着它們僅用於內部程序集使用,並且不在庫外部可見。這是封裝在裝配層面上的。