Condividi tramite


Progettazione di classi astratte

Poiché non dovrebbero mai essere create istanze di classi astratte, è importante definire correttamente i costruttori di tali classi. È inoltre importante garantire che una classe astratta funzioni correttamente e possa essere estesa facilmente. Le linee guida riportate di seguito contribuiscono a garantire che le classi astratte vengano progettate in modo corretto e funzionino regolarmente una volta implementate.

Non definire costruttori pubblici o costruttori interni protetti (Protected Friend in Visual Basic) in tipi astratti.

I costruttori con una visibilità public o protected internal sono destinati ai tipi per i quali è possibile creare delle istanze. Per i tipi astratti non è mai possibile creare delle istanze.

Definire un costruttore protetto o interno in classi astratte.

Se si definisce un costruttore protetto in una classe astratta, la classe base può eseguire attività di inizializzazione quando vengono create istanze di una classe derivata. Un costruttore interno impedisce l'utilizzo della classe astratta come classe base di tipi che non si trovano nello stesso assembly della classe astratta.

Fornire almeno un tipo concreto che erediti da ciascuna classe astratta fornita.

Questa procedura consente agli sviluppatori di librerie di individuare problemi o errori nella progettazione della classe astratta. Ciò significa anche che, per gli scenari di alto livello, nei quali gli sviluppatori potrebbero non comprendere il funzionamento delle classi astratte e dell'ereditarietà, è possibile utilizzare le classi astratte senza dover apprendere questi concetti. .NET Framework fornisce ad esempio le classi astratte WebRequest e WebResponse per gestire l'invio di richieste e la ricezione di risposte da un URI (Uniform Resource Identifier). Come una delle varie implementazioni concrete di queste classi astratte, in .NET Framework sono incluse le classi HttpWebRequest e HttpWebResponse, che costituiscono implementazioni specifiche di HTTP delle classi astratte.

Portions Copyright 2005 Microsoft Corporation. Tutti i diritti riservati.

Portions Copyright Addison-Wesley Corporation. Tutti i diritti riservati.

Per ulteriori informazioni sulle linee guida di progettazione, vedere “le linee guida di progettazione di Framework: Idiomi convenzioni, e modelli per libro raccolte riutilizzabili .NET„ di Krzysztof Cwalina e brad Abrams, emessi da Addison-Wesley, 2005.

Vedere anche

Concetti

Scelta tra classi e interfacce

Altre risorse

Linee guida di progettazione dei tipi

Linee guida di progettazione per lo sviluppo di librerie di classi