Ein anderer Aspekt der Factory

Die Fabrikmethode vermeidet redundanten Code

Ein ​anderer ​Aspekt ​der ​Factory-Method ​ist ​das ​Vermeiden ​von ​redundanten ​Code. ​Die ​Methoden ​werden ​ausgelagert, ​so ​dass ​sie ​praktisch ​jeder ​beliebigen ​Instanz ​zur ​Verfügung ​stehen. ​Beispiel:

Datei ​factory/errmsg.pm

use ​strict;
use ​warnings;

*errmsg ​= ​sub{
 ​ ​ ​ ​my ​$self ​= ​shift;
 ​ ​ ​ ​$self->{STASH}{errstr} ​= ​shift;
 ​ ​ ​ ​$self->{STASH}{url} ​= ​shift ​|| ​$ENV{REQUEST_URI};
 ​ ​ ​ ​read(DATA, ​$self->{BODY}, ​-s ​DATA);
};


# ​HTML ​Template ​is ​shown ​below
__DATA__
<p ​class="error">
 ​ ​ ​ ​%errstr%
</p>

<p>
 ​ ​ ​ ​<a ​href="%url%">Bitte ​die ​Seite ​neu ​Laden</a>
</p>

Diese ​Methode ​wird ​nur ​bei ​Bedarf ​kompiliert ​und ​kann ​von ​jeder ​beliebigen ​Klasseninstanz ​aus ​aufgerufen ​werden. ​Zur ​Ausgabe ​der ​Fehlermeldung ​wird ​der ​BODY ​komplett ​ausgetauscht.


Anbieter: nmq​rstx-18­@yahoo.de, die Seite verwendet funktionsbedingt einen Session-Cookie und ist Bestandteil meines nach modernen Aspekten in Perl entwickelten Frameworks.