Udostępnij przez


Projekt terenu

Uwaga / Notatka

Ta treść jest przedrukowana za zgodą Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2. wydanie. Wydanie to zostało opublikowane w 2008 roku, a książka została w pełni zmieniona w trzecim wydaniu. Niektóre informacje na tej stronie mogą być nieaktualne.

Zasada hermetyzacji jest jednym z najważniejszych pojęć w projekcie obiektowym. Ta zasada wskazuje, że dane przechowywane wewnątrz obiektu powinny być dostępne tylko dla tego obiektu.

Przydatnym sposobem interpretacji zasady jest stwierdzenie, że typ powinien być zaprojektowany tak, aby zmiany w polach tego typu (zmiany nazwy lub typu) mogły zostać wprowadzone bez przerywania kodu innego niż dla elementów członkowskich typu. Ta interpretacja natychmiast oznacza, że wszystkie pola muszą być prywatne.

Wykluczamy stałe i statyczne pola tylko do odczytu z tego ścisłego ograniczenia, ponieważ takie pola, prawie według definicji, nigdy nie są wymagane do zmiany.

❌ NIE stosuj pól instancji, które są publiczne lub chronione.

Należy podać właściwości umożliwiające uzyskiwanie dostępu do pól zamiast udostępniać je publicznie lub chronić.

✔️ Używaj stałych pól dla stałych, które nigdy się nie zmienią.

Kompilator zakodowuje wartości pól const bezpośrednio w kodzie wywołującym. W związku z tym wartości const nigdy nie mogą być zmieniane bez ryzyka naruszenia zgodności.

✔️ DO używać publicznych pól statycznych readonly dla wstępnie zdefiniowanych wystąpień obiektów.

Jeśli istnieją wstępnie zdefiniowane wystąpienia typu, zadeklaruj je jako publiczne pola statyczne tylko do odczytu samego typu.

❌ NIE przypisuj wystąpień typów modyfikowalnych do readonly pól.

Typ modyfikowalny to taki, którego egzemplarze można zmieniać po ich utworzeniu. Na przykład tablice, większość kolekcji i strumieni są typami modyfikowalnymi, ale System.Int32System.Uri, i System.String są niezmienne. Modyfikator tylko do odczytu w polu typu referencyjnego uniemożliwia zastąpienie wystąpienia przechowywanego w polu, ale nie uniemożliwia modyfikowania danych tego wystąpienia przez wywołanie członków zmieniających to wystąpienie.

© Części 2005, 2009 Microsoft Corporation. Wszelkie prawa zastrzeżone.

Przedrukowane za zgodą Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition przez Krzysztofa Cwalinę i Brada Abramsa, opublikowane 22 października 2008 przez Addison-Wesley Professional w ramach serii Microsoft Windows Development.

Zobacz także