Attualmente sto sviluppando un piccolo framework basato su componenti, la piattaforma Android. Il framework ha alcuni aspetti pratici e alcuni elementi astratti (ha una logica interna, ma lo sviluppatore ha bisogno di aggiungere del codice per renderlo pienamente funzionale). Tutta la comunicazione tra i componenti è soddisfatta utilizzando le interfacce. La mia domanda è:
Sapendo che alcuni componenti hanno dipendenze, il mio framework dovrebbe fornirgli automaticamente?
E.g. : ho un un componente che "necessita" componente B . All'inizio ho pensato a due soluzioni:
-
Il mio framework dovrebbe creare e iniettare automaticamente il componente B quando lo sviluppatore crea un'istanza del componente A. Se B è un componente astratto, vorrei creare e fornire un'istanza default . / p>
-
Il framework dovrebbe spiegare nell'API che un componente ha bisogno del componente B e quindi lasciare allo sviluppatore l'istanziazione del componente B e passarlo come dipendenza a A.
Nella seconda soluzione lo sviluppatore potrebbe anche creare un nuovo componente che rispetti il contratto (interfacce) con il componente A e quindi utilizzarlo.
Quale di queste soluzioni porterebbe a una migliore manutenzione, flessibilità ed espansione sia del framework che del codice degli sviluppatori? Accetto altre soluzioni.