Partekatu bidez


Diseño de campo

Nota:

Este contenido se reimprime con permiso de Pearson Education, Inc. de Directrices de diseño de frameworks: Convenciones, expresiones y patrones para bibliotecas reutilizables de .NET, 2ª edición. Esa edición fue publicada en 2008, y el libro ha sido totalmente revisado en la tercera edición. Parte de la información de esta página puede estar obsoleta.

El principio de encapsulación es una de las nociones más importantes en el diseño orientado a objetos. Este principio indica que los datos almacenados dentro de un objeto solo deben ser accesibles para ese objeto.

Una manera útil de interpretar el principio es decir, que se debe diseñar un tipo para que se puedan realizar cambios en los campos de ese tipo (cambios de nombre o tipo) sin interrumpir el código distinto de para los miembros del tipo. Esta interpretación implica inmediatamente que todos los campos deben ser privados.

Se excluyen los campos constantes y estáticos de solo lectura de esta restricción estricta, ya que estos campos, casi por definición, nunca son necesarios para cambiar.

❌ NO proporcione campos de instancia públicos o protegidos.

Debe proporcionar propiedades para acceder a los campos en lugar de hacerlos públicos o protegidos.

✔️ Use campos constantes para constantes que nunca cambiarán.

El compilador graba los valores de los campos const directamente en el código de llamada. Por lo tanto, los valores const nunca se pueden cambiar sin el riesgo de interrumpir la compatibilidad.

✔️ Use campos estáticos readonly públicos para instancias de objeto predefinidas.

Si hay instancias predefinidas del tipo, declarelas como campos estáticos públicos de solo lectura del propio tipo.

❌ NO asigne instancias de tipos mutables a readonly campos.

Un tipo mutable es un tipo con instancias que se pueden modificar después de ser instanciadas. Por ejemplo, las matrices, la mayoría de las colecciones y los flujos son tipos mutables, pero System.Int32, System.Uriy System.String son inmutables. El modificador de solo lectura de un campo de tipo de referencia impide que la instancia almacenada en el campo se reemplace, pero no impide que los datos de instancia del campo se modifiquen mediante llamadas a los miembros que cambian la instancia.

© Partes 2005, 2009 de Microsoft Corporation. Todos los derechos reservados.

Reimpreso con permiso de Pearson Education, Inc. de Framework Design Guidelines: Convenciones, Idiomas y Patrones para Bibliotecas .NET Reusables, 2ª Edición por Krzysztof Cwalina y Brad Abrams, publicado el 22 de octubre de 2008 por Addison-Wesley Professional como parte de la Serie Desarrollo de Microsoft Windows.

Consulte también