Diseño de clases abstractas
Nota:
Este contenido se ha copiado con permiso de Pearson Education, Inc. de Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2ª edición. Esa edición se publicó en 2008 y el libro se ha revisado completamente en la tercera edición. Parte de la información de esta página puede estar obsoleta.
❌ NO defina constructores internos públicos o protegidos en tipos abstractos.
Los constructores solo deben ser públicos si los usuarios deben crear instancias del tipo. Puesto que no se pueden crear instancias de un tipo abstracto, no es correcto diseñar un tipo abstracto con un constructor público y confundir a los usuarios.
✔️ Defina un constructor protegido o interno en clases abstractas.
Un constructor protegido es más común y simplemente permite que la clase base realice su propia inicialización cuando se creen subtipos.
Se puede usar un constructor interno para limitar las implementaciones concretas de la clase abstracta al ensamblado que define la clase.
✔️ Proporcione al menos un tipo concreto que hereda de cada clase abstracta que se envíe.
Esto ayuda a validar el diseño de la clase abstracta. Por ejemplo, System.IO.FileStream es una implementación de la clase abstracta System.IO.Stream.
Portions © 2005, 2009 Microsoft Corporation. Todos los derechos reservados.
Material reimpreso con el consentimiento de Pearson Education, Inc. y extraído de Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition (Instrucciones de diseño de .NET Framework: convenciones, expresiones y patrones para bibliotecas .NET reutilizables, 2.ª edición), de Krzysztof Cwalina y Brad Abrams, publicado el 22 de octubre de 2008 por Addison-Wesley Professional como parte de la serie Microsoft Windows Development.