Stiamo discutendo del design. Tieni presente che questo è fortran, quindi non possiamo essere troppo intelligenti. Abbiamo le seguenti classi: Applicazione, Sistema, Calcolatrice, CalcolatriceSemplice, CalcolatricePeriodica, Risultato.
L'applicazione è un oggetto applicazione che gestisce gli oggetti di sistema. Per calcolare le informazioni sull'oggetto System, l'applicazione passa il sistema a un calcolatore, che restituisce un risultato.
All'interno di Calcolatrice ci sono due classi specializzate CalculatorSimple e CalculatorComplex, che agiscono su System in base alle informazioni disponibili sul sistema stesso. Alcuni sistemi richiedono CalculatorSimple. Altri richiedono CalcolatriceComplex. La decisione avviene all'interno di Calcolatrice e l'oggetto Risultato può contenere informazioni aggiuntive se è stato eseguito CalculatorComplex. Queste informazioni aggiuntive possono essere interrogate con metodi sull'oggetto Result, per verificare se l'informazione è presente o meno. Questa informazione è di piccole dimensioni.
Per mantenere la separazione dei ruoli, voglio mantenere questa parte inconsapevole dell'output di input. L'oggetto risultato viene ricevuto dall'applicazione e quindi l'applicazione ha il ruolo di scrivere i dati nel file, in base a ciò che trova nell'oggetto risultato. Un collega invece propone di passare il file all'oggetto Calcolatrice e farlo filtrare attraverso la catena in modo tale che le cose vengano scritte direttamente sul file.
Il punto aggiuntivo è che dobbiamo avere un solo file di output, quindi quando il programma viene eseguito in parallelo, solo il nodo master deve scrivere sul file di output, che viene identificato tramite un percorso assoluto e a causa di una limitazione del nostro grezzo Non è possibile accedere a IO lib da processi slave MPI.
Abbiamo bisogno di un'opinione indipendente. Cosa faresti?
Modifica : grazie. Ho diffuso voti e premi il più possibile, poiché chiaramente non c'è una risposta corretta, solo una serie di feedback.