Sto lavorando al codice degli elementi finiti in MATLAB
, e il numero di costanti (ad esempio, l'input dell'utente che definisce la geometria, la fisica, lo schema di soluzioni numeriche) è sostanziale.
Attualmente, ho passato le variabili tra le subroutine usando le istruzioni global
, ma queste non offrono alcuna indicazione su quali siano le variabili o quale sia il loro utilizzo; non ideale come il codice si espande.
Voglio incapsulare le costanti correlate in oggetti MATLAB
(ad esempio GEOMETRY
, per tutte le costanti di geometria, ecc. In questo caso d'uso, saranno essenzialmente delle strutture, non avranno funzioni private associate.) È questa cattiva pratica di codifica? Sembra funzionare in modo contrario a tutto ciò che conosco sulla buona programmazione orientata agli oggetti.
Alla fine (una volta che ho finito la prototipazione), voglio convertire tutto in C ++, quindi la mia preoccupazione principale è fare ciò in modo accettabile in entrambi i paradigmi di programmazione.
Note:
-
MATLAB
consente la definizione di "oggetti" in un modo molto ad hoc:GEOMETRY.DX = DX; GEOMETRY.DY = DY;
mentre il C ++ richiederebbe la definizione di una classe; Mi piacerebbe ridurre al minimo l'editing interlinguale richiesto.
- Gli array non sono una soluzione adeguata. I dati sono correlati allo scopo, ma non sono tutti della stessa dimensione, tipo, ecc. L'uso degli oggetti assicura 1, come i dati sono raggruppati; 2, ogni volta che si fa riferimento ai dati, si fa riferimento usando il suo nome originale; 3, la confusione del codice, le contraddizioni e l'ambiguità dalle istruzioni
global
vengono rimosse.
Sto "violando le regole" usando gli oggetti come ho proposto? Se è così, c'è un modo migliore per strutturare i miei dati? Grazie.