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.