Projekt pola

Uwaga

Ta zawartość jest drukowana przez uprawnienie Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition. 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 udostępniaj pól wystąpień, 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ć.

✔️ Czy używać pól stałych dla stałych, które nigdy się nie zmienią.

Kompilator wypala wartości pól const bezpośrednio do wywoływania kodu. 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 typ z wystąpieniami, które można modyfikować po utworzeniu wystąpienia. 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 odwołania uniemożliwia zastąpienie wystąpienia przechowywanego w polu, ale nie uniemożliwia modyfikowania danych wystąpienia pola przez wywołanie elementów członkowskich zmieniających wystąpienie wystąpienia.

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

Reprinted by permission of Pearson Education, Inc. from Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, published oct 22, 2008 by Addison-Wesley Professional w ramach Microsoft Windows Development Series.

Zobacz też