Sto sviluppando un software Java in base al modello architettonico Layers orientato agli oggetti. Ogni livello dovrebbe essere chiaramente separato dal resto e fornire un'interfaccia ben definita per l'utilizzo dei suoi servizi (forse più di uno).
Un esempio comune per questi livelli potrebbe essere un'architettura composta da un livello di elaborazione delle richieste, un livello della logica di business e un livello di persistenza.
Tuttavia, non sono sicuro di come utilizzare correttamente le interfacce Java per implementare questa struttura. Immagino che ogni strato dovrebbe avere il proprio pacchetto Java. Ogni strato dovrebbe contenere un'interfaccia Java che definisce i metodi per accedervi? Quali classi implementano queste interfacce? Classi del livello o delle classi dall'esterno del livello? Quali metodi di classi utilizza un oggetto esterno se desidera utilizzare un livello?