Attualmente la mia architettura è un blocco monolitico che gestisce un compito davvero specifico. Ora ha bisogno di essere generalizzato.
In questo momento gestisce una richiesta e tutti i processi (1 o molti) ad essa associati. C'è una classe Request
e una classe Process
e poiché serve un compito specifico questo modello era OK.
In questo momento ho bisogno di dividere entrambe le classi per ottenere la modularità. Ad esempio, la classe Request
deve essere divisa. Quindi avrò ancora una classe Request
, che contiene le informazioni di richiesta generale e molti RequestDetailsForServiceOne
, RequestDetailsForServiceTwo
e così via, che contengono informazioni dettagliate relativamente a un tipo specifico di richiesta. Ugualmente per Process
.
La domanda adesso è: come associare Request
class con RequestDetailsForServiceOne
(in fase di esecuzione)?
Avevo pensato a Dependency Injection, ma RequestDetailsForServiceOne
e RequestDetailsForServiceTwo
non condividono alcun comportamento comune, (le classi memorizzano solo alcune proprietà), in questo modo mi guiderò a codificare un IRequestDetailsForService
completamente vuoto. Mi sembra un odore di codice.
Sarebbe un'idea migliore in questo caso usa, (all'interno Request
/ Process
class) un dizionario di proprietà e evita completamente le classi RequestDetailsForService*
?
Non mi piace molto la perdita di controllo dei caratteri che in questo modo mi riporta indietro. Quale sarebbe una soluzione ideale?