Sono al lavoro per impacchettare un'API per il consumo pubblico. Come tale sto cercando di limitare i metodi che sono esposti solo a quelli che desidero essere pubblici e sostenibili. Sotto questo, naturalmente, ci sono una moltitudine di metodi ad accesso limitato.Le mie classi API interne dovrebbero essere tutte in un unico pacchetto?
Il problema è che ho un sacco di codice interno che deve accedere a questi metodi ristretti senza rendere pubblici quei metodi. Questo crea due problemi:
- Non riesco a creare interfacce per comunicare tra le classi in quanto questo renderebbe questi miei metodi interni pubblici.
- Non riesco ad accedere ai metodi protetti o predefiniti a meno che non inserisca la maggior parte delle classi interne nello stesso pacchetto .
Quindi, ho circa 70 o 80 classi interne in pacchetti separati ma MA con modificatori di accesso eccessivamente permissivi. Diresti che un singolo pacchetto è il minore di due mali o esiste un modo migliore per essere in grado di mascherare i miei metodi interni mantenendo pacchetti più granulari?
Sarei interessato a scoprire le migliori pratiche qui.
Sono già a conoscenza di This
Penso che la domanda sia un po 'soggettiva: personalmente, non mi piacciono le decisioni di progettazione che portano a una cattiva organizzazione interna, come il caso di tutte le classi in un solo pacchetto. Ma il modo giusto di fare queste cose non viene in mente proprio ora. – incarnate