Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/08/2009, 18:39
Avatar de Porlachucha
Porlachucha
 
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 16 años, 3 meses
Puntos: 5
Problema con la implementacion de Clases

Saludos Foreros

Tengo el siguiente problema, a ver si alguien me puede dar una idea de como solucionarlo de una manera ""elegante"".. o bien.. no tan elegante pero efectiva

Tengo un conjunto de datos (muchos datos) con los cuales debo hacer calculos (muchos calculos). estos calculos se hacen con un set de formulas

pues bien, siguiendo un poco de lejos la programacion poo, me cree una clase, que encapsula estas formulas, y ademas defini para esta clase, un set de propiedades, que es como le estoy pasando los valores que usaran estas formulas para generar los resultados...
este es un esquema de como esta estructurada la clase

class cFormulas
{
//Propertys
private Int32 iNI_Acu;
public Int32 iNumeroInicioMes_Acu
{
get
{
return iNI_Acu;
}
set
{
iNI_Acu = value;
}
}

private double dBI_Acu;
public double dBioMasaInicioMes_Acu
{
get
{
return dBI_Acu;
}
set
{
dBI_Acu = value;
}
}
.
.
.
.
.
// muchas propertys

// funciones miembro de la clase (calculos)
public double? dCalculaPesoInicial()
{
try
{
return System.Math.Round((dB0_Acu / iN0_Acu) * 1000, 4);
}
catch (Exception)
{
return null;
}
}
public double? dCalculaPorcentajeCrecimientoUltimoMes()
{
double dVarAux_Biomasas1 = dBF_UltPer + dBH_UltPer + dBOUT_UltPer;
double dVarAux_Biomasas2 = dBI_UltPer + dB0_UltPer + dBIN_UltPer;
Int32 iVarAux_Numeros1 = iNF_UltPer + iNH_UltPer + iNOUT_UltPer;
Int32 iVarAux_Numeros2 = iNI_UltPer + iN0_UltPer + iNIN_UltPer;
try
{
return System.Math.Round((((dVarAux_Biomasas1 / iVarAux_Numeros1) - (dVarAux_Biomasas2 / iVarAux_Numeros2)) / (dVarAux_Biomasas2 / iVarAux_Numeros2) * 100), iNumeroDecimales);
}
catch (Exception)
{
return null;
}
}
.
.
.
.
.
// muchos calculos
}

Esto funciona bien, pero tiene una complicacion, y es que como son MUCHOS calculos, al instanciar la clase, debo estar llenando todos y cada uno de las variables que esta clase ocupa.... a su vez, por cada calculo debo llamar a la funcion miembro correspondiente..

se me ocurre que, dado que los datos los puedo tener de alguna forma en structs, los puedo pasar de esta manera a la clase (solucion aceptable)
lo que no puedo conseguir aun, es ver una manera de automatizar las llamadas a las funciones miembro, dado que estas tienen un nombre distinto cada una
Se me ocurre entonces, crear una unica funcion miembro, que internamente en la clase, llame a la funcion correspondiente (con algun codigo), pero no puedo concretar esta idea.. se que existen metodos que hacen este tipo de trabajos, pero no soy muy habil aun con la programacion OOP.

Si alguien tiene una idea, y me puede ayudar, quedare muy agradecido

Saludos
PLCH