Utilizzo Apache Wicket per lo sviluppo di app web, ne ho sviluppate alcune nell'ultimo anno ed è stato fantastico; oggi stavo guardando alcune pagine e la maggior parte di esse assomiglia a questo:
public class MyPage extends MyBasePage
{
public MyPage() {
constructUI();
}
private void constructUI() {
//first build all the models..
IModel aModel = new SomeModel(new SimeObject());
//then build forms, links and buttons like this
Form myForm = new Form("myForm", aModel) {
//notice that the submit logic is not implemented here
private void onSubmit() {
myForm_submit();
}
}
}
private void myForm_submit() {
//handle the form submision here, validation, service calling etc..
}
}
Di solito gestisco l'invio del modulo e il link / clic del pulsante su metodi separati per mantenere il metodo constructUI
il più breve possibile, la maggior parte delle pagine ha 1 o 2 griglie e 2-3 moduli per azioni diverse, per il mio esigenze specifiche e casi d'uso questa pratica mi dà questi benefici:
-
L'interfaccia utente può essere costruita / decostruita in diversi modi (per rifattare il markup ad esempio) senza dover copiare / incollare / spostare l'intera logica di gestione dell'invio
-
Avendo
*_submit
,*_click
metodi permette di navigare facilmente nella classe usando "ctrl + o" (su Eclipse) per filtrare e trovare metodi
Quindi la mia domanda è, se esiste qualche pattern software che permetta di separare la logica "constructUI" in una classe diversa, o qualcosa di simile, perché alcune pagine sono pesanti (anche usando componenti personalizzati) e "constructUI" diventa troppo grande.