Thread Perl 5.x: Gute Beispiele zum Lernen von MVC (Theorie+Praxis) (3 answers)
Opened by GwenDragon at 2021-04-20 18:27

hlubenow
 2021-04-27 21:47
#193249 #193249
User since
2009-02-22
838 articles
BenutzerIn
[default_avatar]
Und hier noch schnell ein Beispiel, wie man eine andere "View"-Klasse einsetzen kann (hier mit Perl/Tk anstatt wie oben mit Ausgabe auf der Konsole durch "print"), ohne die anderen beiden Klassen zu verändern.

(Daß der MainLoop hier so spät startet, ist natürlich suboptimal und müßte in einer echten Anwendung vermieden werden.
Am besten sollte "Controller" "View" gesondert anweisen, den MainLoop zu starten.)

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package View {

    sub new {
        my $classname = shift;
        my $self = { controller => shift};
        $self->{mw} = MainWindow->new();
        $self->{mw}->optionAdd("*font", "Arial 18 normal");
        $self->{mw}->title("Result");
        $self->{tw} = $self->{mw}->Text(bg => "white",
                                        width => 20,
                                        height => 5);
        $self->{tw}->pack(-padx => 20, -pady => 20);
        $self->{btn_exit} = $self->{mw}->Button(-text => "Exit",
                                                -command => sub { $self->{mw}->destroy() });
        $self->{btn_exit}->pack(-side => "right", -padx => 5, -pady => 5);
        return bless($self, $classname);
    }

    sub showResult {
        my $self = shift;
        my $result = shift;
        $self->{tw}->insert("end", $result);
        $self->{mw}->MainLoop();
    }
}

Last edited: 2021-04-27 21:49:34 +0200 (CEST)

View full thread Perl 5.x: Gute Beispiele zum Lernen von MVC (Theorie+Praxis)