Club.NET Almería

Plataforma .NET de Ingenieros/Ingenieros Técnicos en Informática de Almería
¡Bienvenid@ a Club.NET Almería! Iniciar sesión | ÚNETE a la web | Ayuda
en Buscar
Principal Blogs Foros Imágenes Descargas

BOXING : Struct o Class ??

Último artículo 02-22-2007, 4:26 escrito por jaberme. 0 respuestas.
Ordenar mensajes: Anterior Siguiente
  •  02-22-2007, 4:26 698

    BOXING : Struct o Class ??



    Supongamos, como ejemplo, un servicio "empleado", implementado en una arquitectura basada en el protocolo SOA (Service Oriented Architecture) que proporciona el siguiente método:



    Empleado    getInformacionEmpleado(int IdEmpleado)

    si observamos con atención a esta cabecera, Empleado puede definirse como un Struct (registro) porque sería mucho más rápido y ligero comparado con la creación de Empleado como Clase (potencial objeto).

    struct Empleado
    {
    int IdEmpleado;
    int departmento;
    string nombre;
    string cargo;
    string direccion;
    ....
    }

    Además, para intentar reducir el trafico en la red, el servicio "Empleado" debería proporcionar la siguiente "sobrecarga" -polimórfica-.

    Empleado [] getInformacionEmpleado(int[] IdEmpleado)

    Ahora, Empleado, ¿debería ser una clase o una estructura/Struct/Registro ?
     ¿Un valor tipado o una referencia tipada? Como el array  provocará la conversión en tiempo de ejecución de valor tipado a referencia tipada, incurriendo en un lastre para el rendimiento. Esto hace que la decisión entre Struct / Clase sea una decisión importante.
    En este ejemplo he citado a las arquitecturas SOA, pero cualquier entorno que emplee el "BOXING" es suceptible a este ejemplo.

    REF: BOXING -con tiempo lo definiré mejor-
    José Antonio Álvarez Bermejo.
    - - - disclaimer - - -
    Las opiniones son como el olor corporal, a cada uno le gusta el suyo. No te esfuerces en oponerte a mi opinión por que esa es tú opinión y a mi me trae sin cuidado.
Ver como una fuente de noticias RSS en XML
Ofrecido por Community Server (Personal Edition)