Sto provando a modellare un progetto per un progetto C #. Cercando di seguire i principi SOLIDI, questo è quello che ho ottenuto finora:
SDKClient
class che ha tre proprietà importanti (per questa spiegazione) ( IAuthProvider
, IHttpProvider
e IFileService
). Il SDKClient
deve essere disaccoppiato, quindi sono sempre libero di scambiare la classe auth o la classe http. Ecco perché sto usando solo le interfacce (per un futuro DI).
Ma il vero problema risiede nei servizi. Finora stavo usando il client esclusivamente per il cosiddetto " FileServices
", che condividono lo stesso comportamento. Ora non sono sicuro di cosa fare. Dovrei utilizzare nuovi servizi, che non condividono nulla in comune con FileServices
.
Quindi la mia domanda è, c'è un modo per generalizzarlo a qualcosa come IService
, o è questo il modo sbagliato, forse alcune fabbriche sono la soluzione giusta qui, o il servizio non dovrebbe essere nella SDKClient
?
Sono abbastanza inesperto nella progettazione del software, ecco perché spero in soluzioni / idee davvero pulite.
Se la mia spiegazione non è stata sufficiente, chiedimi solo domande sui punti che non puoi capire.