Sdk building, dichiarare dipendenze all'interno dell'assembly o usare external?

0

Nella mia azienda, stiamo costruendo un SDK composto da un numero di assiemi. Ad esempio, forniamo un assembly chiamato Company.Platform.Security che contiene l'implementazione del nostro modello di autorizzazione.

Ora questo assembly contiene il codice che parla con altri servizi su HTTPS. È quindi necessario scoprire dove tali servizi vivono e deve registrare le interazioni e gli eventuali errori che ne derivano.

Quindi lo stesso SDK contiene assiemi chiamati Company.Platform.Logging , Company.Platform.ServiceDiscovery ecc. Questi gruppi espongono le interfacce chiamate Company.Platform.Logging.ILogging e Company.Platform.ServiceDiscovery.IServiceDiscovery rispettivamente.

Ora la mia domanda è, se le classi in Company.Platform.Security prendono queste interfacce come dipendenze nei loro costruttori? O dovrebbe Company.Platform.Security definire la propria interfaccia Company.Platform.Security.Interfaces.ILogging e Company.Platform.Security.Interfaces.IServiceDiscovery e prendere gli oggetti che implementano quelli nel costruttore delle sue classi?

Quest'ultimo rende l'assemblaggio IMO più coeso in quanto lo protegge dai cambiamenti in quelle interfacce (che possono essere o non essere mantenute da altri membri del team o team). Ma molte classi concrete saranno solo classi di adattatori molto semplici per le classi negli altri assiemi. Potrebbe anche rendere il sistema più complesso.

Quali sono argomenti validi per entrambi gli approcci?

    
posta MvdD 01.05.2016 - 02:26
fonte

1 risposta

1

Vorrei usare il primo approccio. Quest'ultimo duplica un grande sforzo, soprattutto perché le coppie di interfacce saranno probabilmente le stesse. Quindi, seguendo i principi KISS e DRY, vorrei semplicemente utilizzare un set di interfacce e non creare un secondo set (probabilmente duplicato).

    
risposta data 01.05.2016 - 03:07
fonte

Leggi altre domande sui tag