Se Service Layer non sta facendo nulla, basta chiamare i metodi in DAO. La mia interfaccia di servizio può estendere le interfacce DAO?

0

Perché abbiamo bisogno di scrivere gli stessi metodi in Service Interface, quando vogliamo solo una replica di DAO Interface.

interface DAOI
{
method1();
method2();
}

interface ServiceI extends DAOI
{

}

anziché sotto

interface ServiceI 
{
method1();
method2();
}
    
posta omkar sirra 06.10.2017 - 12:59
fonte

1 risposta

2

If Service Layer is doing nothing, just calling methods in DAO. Can my Service Interface just extend DAO Interfaces?

No.

Non hai un livello di servizio per avere un livello di servizio. È un livello che nasconde ulteriormente la tua origine dati e il modo in cui viene implementato e aggiunge anche la logica di coordinamento per i DAO (supponiamo che tu abbia un'azione dell'utente che implica l'accesso a più DAO. Chi coordinerebbe?). Nella maggior parte dei casi il tuo livello di servizio contiene anche la logica di business dell'applicazione.

Potrebbe voler leggere sul Service Layer prima di ogni altra cosa. Consulta le seguenti domande solo per iniziare:

link

link

Un livello di servizio è considerato un anti-pattern dai puristi OOP (cioè un modello di dominio anemico) ma è utile nelle grandi applicazioni aziendali perché offre un modello più semplice con cui lavorare e consente anche di utilizzarlo come limite di transazione . Di nuovo, puoi trovare vantaggi e svantaggi di un livello di servizio online.

Tornando alla tua domanda. Se il tuo livello di servizio chiama semplicemente un DAO, allora è quello che sta facendo. È necessario preservare l'astrazione e non avere servizi costruiti in un certo modo, e servizi costruiti in altro modo da qualche altra parte. Sii coerente. I servizi semplici si limitano a delegare ai DAO, non a implementarli.

Non sei sicuro da dove sia sorta la tua domanda, ma solo per comprendere questo punto, se stai imparando a creare un'applicazione usando i livelli di servizio e DAO, tieni presente che la maggior parte dei libri, tutorial, ecc. non si addentrano in spiegazioni o dettagli complessi, quindi la maggior parte degli esempi di servizio si limitano a delegare ai DAO, lasciando che la gente grattasse la testa e pensasse "Beh, questo è stupido! Perché avere un livello extra che non fa niente? Basta chiamare i DAO. Fatto. Molto meglio". Bene, NO.

Quindi se hai un livello di servizio, tienilo pulito e ad un livello più alto di astrazione. Non inquinarlo con i tuoi DAO. Inietta i DAO e delegati a loro.

    
risposta data 06.10.2017 - 17:18
fonte

Leggi altre domande sui tag