Hakuna matata!
weils mir gleich das Ergebnis liefert und meine Klasse gar nicht wissen muss
Genau, das ist halt eine Factory.
Ergo: Mit meiner Auslegung Factory-Pattern bin ich flexibler und praxisnah, der Code wird austausch- und wiederverwendungsfähig.
Deine Auslegung scheint mir die ganz gewöhnliche Auslegung zu sein.
Eine sehr praktische Angelegenheit ;)
$self->render(\$self->{BODY}, $self->{STASH});
Lazy-Creation: Die Instanz der Template-Engine (z.B. HTML::Template) wird erst erstellt, wenn die render()-Methode aufgerufen wird. Die Template-Engine ist austauschbar und welche das ist, muss nur derjenige wissen, der die Templates bearbeitet.
Schöne Grüße.