2008-12-11 21 views
5

He visto estos dos enfoques para la declaración constante que se van a utilizar en el proyecto.Declarando constantes en un proyecto

  1. Constantes en un módulo público.

  2. constantes en una clase no heredables (sellado)

¿Alguien utiliza cualquier otro enfoque para la Declartion constante?

¿Hay alguna diferencia entre estos enfoques, los pros y los contras?

Gracias.

Respuesta

13

Ponga la constante en la clase donde sea más relevante, por ej. Math.Pi, etc. Int32.MinValue

que he visto varias constantes que en realidad debería ser enumeraciones, también - en particular para los códigos de estado, etc.

no creo que es prudente crear una clase (o módulo) sólo para constantes a menos que realmente no exista una clase sensible con la que estén asociadas esas constantes.

3

Estoy de acuerdo con @Jon. Sin embargo, para las constantes que son exclusivas de su aplicación, es decir, son valores predeterminados de configuración, parámetros de ajuste, etc., a veces creo una clase de configuración estática fuertemente tipada para contenerlos. Expongo los valores a través de propiedades con solo getters públicos definidos. De esta forma, pueden cargarse desde un archivo de configuración, pero a lo largo de su código como valores fijos.

1

Mi práctica es similar a lo que dice Jon. La gran mayoría de las enumeraciones y constantes están obviamente vinculadas a una clase o módulo particular y se declaran públicas allí.

El nivel más bajo de mi software se llama Utility y contiene rutinas matemáticas y otras funciones y métodos de utilidad general (en lugar de utilidad específica para el modo de esa aplicación). Hay un módulo que tiene como un conjunto de funciones que solo son funciones de utilidad/subrutinas que no tienen un tema común. Es en esa área donde entran todas las enumeraciones o constantes.

Hay un área similar para el modelo de aplicación donde van las utilidades que son de uso general para esa aplicación. Y eso donde van las constantes que no pueden vincularse a ninguna clase del MODELO.

Así que hay tres áreas en constante se puede encontrar en mi marco personales

Las declaraciones de clase El módulo de utilidad general del modelo de aplicación El módulo de utilidad general del conjunto de utilidad.

En la práctica, solo se tenía que declarar un puñado de docenas de enum y constante en cualquiera de los módulos de utilidad. La mayoría de ellos son desaceleraciones de Win32 utilizadas por la función Win32 que se importan a mi ensamblado.