Ho lavorato per un cliente un certo numero di anni fa (chi non chiamerò per proteggere il colpevole) che periodicamente avrebbe informazioni come la seguente nella sua logica di visualizzazione:
if (client == "a") {
// ...
}
else if (client == "b") {
// ...
}
else {
// ...
}
La loro piattaforma era ColdFusion (sì, non ridere) e questo faceva parte del modello per il loro processo di forma principale.
Ovviamente, questo è cringe-degno e terribile per numerose ragioni.
Recentemente stavo pensando a come avrei architettato quello. Il mio primo pensiero è stato quello di utilizzare un pattern Method Template combinato con Dependency Injection o Factory Pattern (per astrarre il ragionamento specifico del cliente) per la vista in questione.
Ovviamente, questa soluzione presuppone che tu costruisci viste sul "back-end". Questo però non è più il modo "standard" per farlo, e la maggior parte delle persone sembra essere passata a un qualche tipo di architettura MVC (ASP.NET MVC, Ruby on Rails, ecc.). Con questo in mente, ho notato che ASP.NET Core include supporto per Iniezione delle dipendenze nelle viste , così come MVC 4 .
Spero che questa non sia una domanda troppo semplice, ma è ciò che descrivo in precedenza un modo ancora valido per risolvere questo problema nei framework basati su MVC (in particolare ASP.NET MVC)? In particolare, sono confuso su come applicarlo a ASP.NET Views; So che le Views supportano Dependency Injection, ma esiste una sorta di analogia con un modello di metodo Template per le visualizzazioni ASP.NET che non determinerà un mix inappropriato della logica di business e di visualizzazione? O sono completamente sulla pista sbagliata?