Pergunta

Atualmente estou trabalhando em um projeto que irá apoiar várias especificações de arquivo de escrita (imagine se você tivesse que suportar algo como XML 1.0, XML 2.0, XML 3.0, etc) chamado ADIF. Atualmente, existem dois padrões (versão 1.0 e versão 2.2.2), e eles são utilizados tanto comercialmente e ambos ainda muito utilizado.

Specification versão 2.2.2 incorpora muito da versão 1.0, mas existem algumas pequenas diferenças que exclui algumas ferramentas de herança e outros OOP.

Como você organizar seu projeto para apoiar as versões mais antigas, ainda continuam a manter-se com novos padrões.

  • Namespaces (Standard.Version1, Standard.Version222, Standard.Version223 (próxima versão?), Etc.) em uma única biblioteca de classe? Parece desleixado.
  • biblioteca de classe separada para cada na mesma solução (Version222.dll, Version223.dll, etc.)? Parece excessivo.
  • etc.

Eu pretendo implementar algum código que irá converter de uma versão para outra.

Basicamente, eu estou procurando alguns conselhos sobre a melhor forma de organizar este tipo de projeto.

http://www.adif.org/

Foi útil?

Solução

Você declarou que não há uma hierarquia boa inhertance que você pode implementar?

Se isso eu recomendo que você siga a técnica de namespace para a sua biblioteca, que pode usar qualquer semelhança possível dentro da dll para reduzir a carga de trabalho para si mesmo. Ter dois da API irá torná-lo muito mais fácil para que você teste e também muito bem lidar com questões relacionadas com as diferenças entre as versões.

i. sua versão 2.2.2 api só aceitaria objetos da versão 2.2.2 para evitar problemas na biblioteca. Boa sorte com tudo o que você implementar:)

Outras dicas

Specification versão 2.2.2 incorpora muito da versão 1.0, mas existem algumas pequenas diferenças que exclui algumas ferramentas de herança e outros OOP.

A composição de objetos pode ser uma ferramenta muito mais poderosa para OOP do que a herança, que é IMO demasia.

O que maneiras que você pode encontrar para quebrar o problema em subsistemas mais simples?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top