Attualmente sto lavorando a un progetto che richiede l'analisi di diversi tipi di file. Il contenuto dei file popolerà le classi.
eg: file1 populate content of class1, file2 populate content of class2, etc.
La mia domanda è dove dovrebbe andare la logica di analisi del file?
1st option
: se inserisco la logica di analisi all'interno della classe, la classe diventa davvero enorme, perché attualmente la classe stessa è ~ 400 linee e crescerà in futuro. Il vantaggio di questo modo è che le cose sono davvero semplici, potrei usare operator > & gt ;, ecc.
2nd option
: crea una nuova classe che prende std::istream
e riferimento di classe, esegue la logica di analisi e popola la classe. Il vantaggio di questo modo di fare è che se la classe rimane la stessa ma la formattazione del file cambia,
eg: 'file1 populate content of class1 or file1-v2 populate content of class1'
Devo usare il polimorfismo per modificare la logica di analisi e mantenere il design semplice. Lo svantaggio di questa opzione è, è un po 'complesso ma posso conviverci.
Quale opzione pensi sia migliore o ci sono altre opzioni migliori?