Interfacce Java nel modello dei livelli

2

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?

    
posta alexander 15.01.2017 - 16:09
fonte

3 risposte

1

L'idea dell'architettura Layered è che ogni livello fornisce un'astrazione al livello precedente, quindi un livello dipende solo dal livello precedente. Ad esempio con un servizio Web

  1. Gestione richieste

    interfaccia pubblica IXController {     inviare();     ottenere();     Elimina(); }

    public class XControler implementa IXController { XController pubblico (servizio IXService) {}     inviare(){}     ottenere(){}     Elimina(){} }

  2. Livello aziendale

    interfaccia pubblica IXSercice {    fare qualcosa(); }

    public service XService implementa IXService {     XService pubblico (dado diDao IX) {}     fare qualcosa(){} }

  3. Livello di persistenza

    interfaccia pubblica IXDao {     fare qualcosa(); }

    strumenti di classe pubblica XDaoDao IXDao {     public XDaoDao () {}     fare qualcosa(){} }

Come puoi vedere il ruolo delle interfacce è solo quello di fornire contratti tra i tuoi livelli, questo può essere utile anche quando si utilizzano modelli di fondo come Iniezione Fabbrica o Dipendenza.

Chi accede alle interfacce? Chiunque ha una dipendenza dall'oggetto.

Tutto il resto è risolto con i principi SOLID e OOP, e dovresti prendere in considerazione l'utilizzo di schemi di progettazione.

Qualcos'altro?

    
risposta data 15.01.2017 - 18:21
fonte
1

Utilizziamo le interfacce per ridurre al minimo l'effetto a catena ( link ). Quindi puoi supporre una classe concreta e il suo riferimento. se facciamo qualche cambiamento di questa classe concreta, influisce sul riferimento di essa. Quindi usiamo le interfacce e implementiamo le classi usando quell'interfaccia, possiamo minimizzare l'effetto a catena. Così come se facciamo qualsiasi cambiamento nel livello aziendale, questo non influisce sul livello dei requisiti del processo.

    
risposta data 25.11.2017 - 07:45
fonte
0

Should every layer contain one Java interface that defines methods to access it?

Solo se l'intera applicazione ha un solo caso d'uso.

Ogni interfaccia fa parte di un limite (il livello in questo caso) e un'astrazione. Uno strato certamente non deve essere una sola interfaccia. Piuttosto, un livello può essere costituito da molte interfacce che astraggono i molti oggetti che implementano quel livello.

Non tutte le interfacce fanno parte di un livello architettonico. Un livello è un gruppo di oggetti che assumono responsabilità simili.

    
risposta data 16.01.2017 - 00:47
fonte

Leggi altre domande sui tag