C/Visual C - Programacion optimizada

 
Vista:

Programacion optimizada

Publicado por Nelek (816 intervenciones) el 24/01/2007 10:10:47
Hola a todos,

me gustaria preguntar algo de tipo teorico, en cuanto a la optimizacion de codigo y recursos.

Hasta ahora (debido a mi profesor tutor del proyecto) habia estado programando a base de clases, variables privadas y metodos de get y set para acceder a los valores de las variables privadas. Bonito queda muy bonito, pero me parece que es una perdida de recursos considerable. Es decir:

class CInputData : public CObject
{
public:
DECLARE_DYNCREATE(CInputData)

CString GetInName();
UINT SetInName(CString szName);
CString GetInUnit();
UINT SetInUnit(CString szUnit);
//.... Muchos mas

private:
CPoint p_cpICoord;
CPoint p_cpIWorkCoord;
CString p_szIName;
CString p_szIUnit;
CWnd* p_hpIParamWnd;
//...Mas declaraciones
}

Y luego en el CDoc usaba una CList sobrecargada:

POSITION p_posI; CMyList <CInputData, CInputData&> p_cmlIList;

En lugar de tanto tejemaneje trayendo objetos arriba o abajo para usar los metodos de la clase, estoy pensando en reescribir las cosas y hacerlo con structs, arrays y typedef...

La pregunta es... Como estructurarlo optimizadamente?

clase CInputData con las struct y los typedef dentro de ella, y luego asignar un CArray de tipo "CArray <CInputData, CInputData&> p_aInputs;" dentro del Documento?

toda la relacion de structs y typedef dentro del Documento, un array de dichas struct resultantes "Input" y usando punteros?


Toda sugerencia y orientacion sera bien recibida,

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Añadido

Publicado por Nelek (816 intervenciones) el 24/01/2007 10:29:45
Se me olvido decir que en algunos casos llego a tener jerarquias de hasta 4 clases en el programa original, es decir:

class AttPointData : public CObject
//para almacenar datos acerca de la grafica de cada atributo
//solo tiene 4 variables (2 int, 1 double y 1 bool) y sus metodos get y set del punto.
//Podria ser sustituido por una estructura y crear un array de struct en la clase que
//lo contiene

class AttributeData : public CObject
//para almacenar datos acerca de los atributos, esta clase incluye a la clase
//CAttPointData en un array, ya que cada atributo tiene hasta 4 CAttPointData.
//Tiene diferentes variables (1 array de CAttPointData, 1 CString, 1 double y 1 int)
//con sus get y sus set. Podria ser sustituido por una struct y por un array de
//estructuras en la clase que lo contiene

class CInputData : public CObject
//Almaceno todos los datos relacionados a la variable de entrada, cada entrada
//puede tener hasta 8 elementos CAttributeData, hasta el momento tenia muchos
//metodos sobrecargados para localizar elementos dentro de la lista (localizar la
//posiion de un elemento pasando el nombre, sustituirlo...), acceder a ellos...
//Pero creo que con punteros podria quitarme muchos de esos metodos,

class CFPSDoc : public CDocument
//Aqui guardo los datos de cada una de las entradas dentro de una CList como la
//que declare en el mensaje anterior, con muchos metodos (la mayoria repetidos
//en la clase CInputData) para buscar objeto y devolver el indice, relacionar
//POSITION e indice para un elemento concreto, buscar y sustituir...

Funcionar, funciona... pero me gustaria reducir la cantidad de codigo (creo que ahora estoy usando de 2 a 3 veces mas de lo necesario) y hacerlo algo mas legible.

Espero vuestras respuestas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar