Ho un'applicazione web scritta in Perl con un controller, alcune "viste" e alcuni "Modelli". Ogni "Modello" corrisponde a una "Vista". Il controller (un file) crea un oggetto Model corrispondente a ciascuna vista (la vista è un argomento CGI) quindi recupera la vista dal modulo appena creato.
In effetti, questa dovrebbe essere una brutta cosa, ma puoi discuterne un po 'di più.
La mia prima idea era che, poiché l'oggetto "Modello" dipende dalla "vista", il "modello" è in realtà una vista.
Ma anche il fatto che TUTTI i parametri cgi siano passati al Modello fa sì che il "Modello" non diventi una vera visione, ma perde ogni interesse, dal momento che è solo correlato all'attuale implementazione delle app web. In altre parole, il "Modello" mantiene il modello ma perde la sua "completezza" (il "Modello" non è facilmente comprensibile).
Sono abbastanza nuovo nell'analisi del progetto, quindi per favore non essere troppo duro. Perché è così male?
Ho realizzato un prototipo con le strutture principali che ho compreso di questa applicazione web, realizzato il più breve possibile.
#Model.pm
package Model;
import {
# this requires an attribute called "view"
# and this require an argument which is the cgi params
}
...
#View1.pm
package View1;
...
#Model1.pm
package ModelView1 ;
base Model;
use View1;
sub new {
my $class = shift;
my $arg = shift;
Model::DoSomething($arg);
$self->view = new View1($arg);
...
}
#controller.cgi
my $model = 0;
...
$model = new Model1( cgi_param => params() );
#there is severall models here
...
print $model->get_view()->get_html();