A quanto ho capito, è generalmente consigliato il pacchetto per feature piuttosto che per livello. Ciò promuove livelli più alti di astrazione e modularità tra le classi.
Riesco a capire come funziona in normali applicazioni non di utilità in cui ha funzioni chiare ( registration
, security
, ecc.), ma è difficile applicarlo alle librerie di utility statiche.
Ad esempio, dai un'occhiata a struttura di packaging di Google Guava . Poiché è una libreria, è difficile classificare le funzionalità della libreria in pacchetti. C'è un pacchetto annotations
, un pacchetto networking
, ecc. Mi sembra un po 'una zona grigia perché non è pacchettizzato in un formato esplicito?
Qual è il consenso generale quando impacchettate per feature per qualcosa che consiste in classi di utilità (come una libreria / API)?