Share via


Progettazione di campi

Nota

Questo contenuto viene ristampato con l'autorizzazione di Pearson Education, Inc. da Framework Design Guidelines: Conventions, Idioms and Patterns for Reusable .NET Libraries, 2nd Edition. Tale edizione è stata pubblicata nel 2008 e il libro è stato completamente rivisto nella terza edizione. Alcune informazioni in questa pagina potrebbero non essere aggiornate.

Il principio dell'incapsulamento è una delle nozioni più importanti nella progettazione orientata agli oggetti. Questo principio indica che i dati archiviati all'interno di un oggetto devono essere accessibili solo a tale oggetto.

Un modo utile per interpretare il principio consiste nel dire che un tipo deve essere progettato in modo che le modifiche apportate ai campi di tale tipo (nome o modifica del tipo) possano essere apportate senza interrompere il codice diverso da per i membri del tipo. Questa interpretazione implica immediatamente che tutti i campi devono essere privati.

I campi costanti e statici di sola lettura vengono esclusi da questa restrizione rigorosa, perché tali campi, quasi per definizione, non sono mai necessari per modificare.

❌ NON specificare campi di istanza pubblici o protetti.

È consigliabile fornire proprietà per l'accesso ai campi anziché renderli pubblici o protetti.

✔️ USARE i campi costanti per le costanti che non cambieranno mai.

Il compilatore masterizza i valori dei campi const direttamente nel codice chiamante. Pertanto, i valori const non possono mai essere modificati senza il rischio di interruzione della compatibilità.

✔️ USARE campi statici pubblici readonly per le istanze di oggetti predefinite.

Se sono presenti istanze predefinite del tipo, dichiararle come campi statici di sola lettura pubblici del tipo stesso.

❌ NON assegnare istanze di tipi modificabili ai campi readonly.

Un tipo modificabile è un tipo con istanze che possono essere modificate dopo la creazione di un'istanza. Ad esempio, le matrici, la maggior parte delle raccolte e i flussi sono tipi modificabili, ma System.Int32, System.Uri e System.String sono tutti non modificabili. Il modificatore di sola lettura in un campo di tipo riferimento impedisce la sostituzione dell'istanza archiviata nel campo, ma non impedisce che i dati dell'istanza del campo vengano modificati chiamando i membri che modificano l'istanza.

Parti protette da copyright © 2005, 2009 Microsoft Corporation. Tutti i diritti sono riservati.

Ristampato con l'autorizzazione di Pearson Education, Inc. da Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2a edizione di Krzysztof Cwalina and Brad Abrams, pubblicato il 22 ottobre 2008 da Addison-Wesley Professional nella collana Microsoft Windows Development Series.

Vedi anche