Share via


Diseño de clases abstractas

Actualización: noviembre 2007

Dado que nunca se deberían crear instancias de las clases abstractas, es importante definir correctamente sus constructores. También es importante garantizar que la funcionalidad de su clase abstracta sea correcta y se pueda extender con facilidad. Las instrucciones siguientes ayudan a garantizar que las clases abstractas se diseñan correctamente y funcionan como se espera cuando se implementan.

No defina constructores de tipo public o protected internal (Protected Friend en Visual Basic) en tipos abstractos.

Los constructores con visibilidad public o protected internal son para los tipos de los que se pueden crear instancias. Nunca se pueden crear instancias de los tipos abstractos.

Defina constructores protegidos o internos en clases abstractas.

Si define un constructor protegido en una clase abstracta, la clase base puede realizar tareas de inicialización cuando se crean instancias de una clase derivada. Un constructor interno impide el uso de una clase abstracta como clase base de los tipos que no están en el mismo ensamblado que la clase abstracta.

Proporcione por lo menos un tipo concreto que herede de cada una de las clases abstractas que distribuya.

Esta práctica ayuda a los diseñadores de bibliotecas a localizar problemas o descuidos en el diseño de la clase abstracta. También significa que, para los escenarios de alto nivel en los que puede que los desarrolladores no comprendan las clases abstractas y la herencia, pueden utilizar la clase concreta sin necesidad de aprender estos conceptos. Por ejemplo, .NET Framework proporciona las clases abstractas WebRequest y WebResponse para controlar el envío de solicitudes a un identificador de recursos uniforme (URI) y recibir respuestas del mismo. Como una de varias implementaciones concretas de estas clases abstractas, Framework incluye las clases HttpWebRequest y HttpWebResponse, que son implementaciones específicas de HTTP de las clases abstractas.

Portions Copyright 2005 Microsoft Corporation. Reservados todos los derechos.

Portions Copyright Addison-Wesley Corporation. Reservados todos los derechos.

Para obtener más información sobre las directrices de diseño, consulte el libro titulado "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries" de Krzysztof Cwalina y Brad Abrams, publicado por Addison-Wesley, 2005.

Vea también

Conceptos

Elegir entre clases e interfaces

Otros recursos

Instrucciones de diseño de tipos

Instrucciones de diseño para desarrollar bibliotecas de clases