> For the complete documentation index, see [llms.txt](https://biglazytables.gitbook.io/big-lazy-tables/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://biglazytables.gitbook.io/big-lazy-tables/konzepte/projector-pattern.md).

# Projector Pattern

Das **Projector Pattern** ist ein Konzept, welches von[ Prof. König](https://dierk.github.io/Home/) et. al entwickelt wurde.&#x20;

Die Erstellung und Pflege einer Vielzahl von Views ist oftmals aufwendig, da diese meist jedes mal neu geschrieben werden. Die resultierenden Probleme sind Code Duplication, hoher Aufwand und Code, der generell schwer zu unterhalten ist. Templates wirken diesem Umstand entgehen, bringen aber immer gewisse Nachteile mit sich.&#x20;

Projektoren bestehen aus einer abgeschlossener Logik, die ein Model und Controller entgegennehmen und aus den Daten die entsprechenden UI Komponenten generieren.&#x20;

Projektoren bauen die View und binden die zu darstellenden Daten an das Model. Ein grosser Vorteil davon ist, dass Projektoren ausgetauscht werden können um mit den gleichen Daten andere Views zu abzubilden bzw. zu "projizieren". Möchte man das Verhalten oder Design einer Komponente anpassen, kann dies zentral im entsprechenden Projektor vorgenommen werden.&#x20;

Projektoren können andere Projektoren unter sich einsetzen. Ein Beispiel hierfür wäre ein Projektor für eine Login Komponente, der für Username und Passwort jeweils den Input-Feld-Projector implementiert.&#x20;

Das Projector Pattern wird hier in grossem Detail von Prof. König erklärt: <https://dierk.github.io/Home/projectorPattern/ProjectorPattern.html>.
