Questo potrebbe sembrare strano e probabilmente lo è, ma sto cercando di trovare un buon posto dove posizionare quello che chiamerò "Doers" per mancanza di un nome migliore.
Fondamentalmente, il mio progetto ha attualmente questi Namespace (Cartelle in src)
/
/Error (Custom exception classes)
/Facade (Facades for legacy operations of things not yet converted)
/Model (Entity classes and helpers for ORM mapping)
/Repository (Repository classes that wrap ORM)
/Utility (Anti-pattern probably, things like extension methods, translation,...)
Ora, ho bisogno di implementare una classe che riceverà un file (CSV) e importare quel file nel database, seguendo un algoritmo per decidere cosa fare con ciascuna voce.
Per me, questa è una classe che fa attivamente qualcosa (al contrario, ad esempio, delle classi di entità).
Poiché opera sul database, si potrebbe essere tentati di inserirlo nello spazio del repository, ma questo non è adatto, perché non sarà una classe di repository: semplicemente importerà le cose seguendo una logica specifica.
Attualmente, le classi che fanno attivamente roba sono tutte facciate legacy, quindi hanno già un posto nello spazio dei nomi Facade
. Ma per quanto riguarda le novità? Dove metterli?
Come descriverei questa classe? È un ThingImporter
, ma qual è il suo "genitore"? Sembra sporco inserire lo spazio dei nomi di root ...