Návrh pole

Poznámka:

Tento obsah je znovu vytištěn oprávněním Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms a Patterns for Reusable .NET Libraries, 2. vydání. Tato edice byla publikována v roce 2008 a kniha byla od té doby plně upravena ve třetím vydání. Některé informace na této stránce můžou být zastaralé.

Princip zapouzdření je jedním z nejdůležitějších pojmů v objektově orientovaném návrhu. Tento princip uvádí, že data uložená v objektu by měla být přístupná pouze pro tento objekt.

Užitečným způsobem, jak interpretovat princip, je říci, že typ by měl být navržen tak, aby změny polí daného typu (změny názvu nebo typu) mohly být provedeny bez porušení kódu jiného než pro členy typu. Tato interpretace okamžitě znamená, že všechna pole musí být soukromá.

Z tohoto striktního omezení vyloučíme konstantní a statická pole jen pro čtení, protože tato pole téměř podle definice se nikdy nevyžadují ke změně.

❌ NEPOSKYTUJTE pole instance, která jsou veřejná nebo chráněná.

Měli byste zadat vlastnosti pro přístup k polím místo toho, aby byly veřejné nebo chráněné.

✔️ Do use constant fields for constants that will never change.

Kompilátor vypálí hodnoty polí const přímo do volání kódu. Proto hodnoty const nelze nikdy změnit bez rizika porušení kompatibility.

✔️ Pro předdefinované instance objektů používejte veřejná statická readonly pole.

Pokud existují předdefinované instance typu, deklarujte je jako veřejná statická pole jen pro čtení samotného typu.

❌ NEPŘIřazovat instance proměnlivých typů k readonly polím.

Proměnlivý typ je typ s instancemi, které lze po vytvoření instance upravit. Například pole, většina kolekcí a datových proudů jsou proměnlivé typy, ale System.Int32, System.Uria System.String jsou všechny neměnné. Modifikátor jen pro čtení v poli typu odkazu zabraňuje nahrazení instance uložené v poli, ale nezabrání úpravě dat instance pole voláním členů, kteří mění instanci.

© Části 2005, 2009 Microsoft Corporation. Všechna práva vyhrazena.

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 v rámci Microsoft Windows Development Series.

Viz také