segunda-feira, 19 de maio de 2008

Abstraindo um pouco mais

A inércia é um fator completamente desnecessário em muitos casos. E isso torna-se um problema quando falamos de vida profissional. O problema que tive não chega ser bem na vida profissional, mas, quase. Sempre quando penso em C, esqueço completamente de alguns padrões muito úteis que aprendi com a OOP. Óbio que não conseguimos propagar as maravilhas da OOP em uma linguagem procedural, mas também não precisa virar zona.

Na faculdade tive um exercício de C que descrevia explicitamente a contrução de duas structs. A idéia do exercício era de um teatro que tinha várias peças e uma tabela de preço por faixa de horário. Como uma peça pode ser apresentada todos os dias de semana, há uma relação de dia da semana por quantidade de vagas.

A resolução da struct de peças de teatro que a santa besta que vos fala fez ficou assim:

typedef struct {

int cod;
char nome[30];
int codhorario[7];
int vagas[7];

} TPeca;

A ideia era usar os arrays codhorario e vagas ( ambos de tamanho 7) para fazer uma relação de codhorario por vagas. Mas que porco não ? Provavelmente se eu visse isso em algum sistema na 3Jane falaria um bocado. Se há uma relação de codhorario com vagas, faz uma struct a mais com um nome dia_vagas e resolve o problema. Não seria menos lusitano se ficasse assim:

typedef struct {

int codhorario;
int vagas;

} TDiaVagas;


typedef struct {

int cod;
char nome[30];
TDiaVagas dia[7];


} TPeca;


No final de contas, vivendo e reaprendendo. Ainda bem que não cheguei ao estágio de comer grama. Nada contra viu, Marcus Miris.

Nenhum comentário: