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.