Ok, ho fatto un po 'di ricerche online e ho trovato il thread this, ma ancora non lo chiarisce bene per me.Front Controller vs. Façade pattern
Qual è esattamente la differenza tra un Pattern controller anteriore e uno schema Façade?
Come ho capito finora: Un modello di facciata non contiene alcuna logica aziendale, ma semplicemente centralizza l'accesso a più oggetti.
Un controller anteriore fa la stessa cosa, ma può contenere la logica aziendale per facilitare la logica decisionale di ciò che viene chiamato in base ai dati di input e simili.
Per dare un senso a questo, il seguente semplicistico frammento di pseudo codice significa che drawLine è una facciata per semplificare la conversione delle coordinate in punti e quindi l'implementazione del metodo di disegno che esegue effettivamente il lavoro?
private void drawLine(Int32 StartX, Int32 StartY, Int32 EndX, Int32 EndY)
{
Point Start = new Point(StartX, StartY);
Point End = new Point(EndX, EndY);
Draw(Start, End);
}
Può una facciata rimettere in strati più bassi della vostra applicazione o è in realtà solo di centralizzare l'accesso ai molti componenti sullo stesso livello?
Come ho capito, il front controller coordina il processo di chiamata della funzione completa.
Esempio: un controller Front dovrebbe esaminare i dati e quindi decidere quale azione intraprendere. Quindi compila i dati per ogni chiamata successiva a classi di livello inferiore, finché non arriva a una risposta adeguata che può essere fornita al sistema chiamante.
Penso che la mia comprensione del modello di Façade sia sbagliata o semplicemente troppo semplicistica. Per favore correggimi se sbaglio.
Se la mia comprensione di ciò è corretta, non avrebbe più senso cambiare la facciata dell'applicazione in un controller anteriore nello Microsoft Application Architecture Guide 2.0? Sto specificatamente guardando l'architettura del servizio nel capitolo 18. (Ho la versione Beta 2)
Aggiornamento: Grazie per un'ottima risposta Rune. Perché dici che non è corretto cambiare la facciata in un controller frontale? Sono un grande fan del Front-controller perché mantiene tutte le cose di livello inferiore un po 'più controllate. Quindi, anche se potrebbe non avere più senso, sarebbe completamente sbagliato farlo? Se sì: perché?
Grazie per l'ottima risposta. Perché dici che non è corretto cambiare la facciata in un controller frontale? Sono un grande fan del Front-controller perché mantiene tutte le cose di livello inferiore un po 'più controllate. Quindi, anche se potrebbe non avere più senso, sarebbe completamente sbagliato farlo? Se sì: perché? – Gineer