Skip to content

Commit 4bbfe15

Browse files
author
janschloesser
committed
📝 ✨ Add applicability of the proxy pattern
1 parent 21ac377 commit 4bbfe15

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed
Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
11
## \faicon{sitemap} \hspace{.1cm} Struktur & Sequenzdiagram
22
![Klassendiagram des Proxy-Musters](../assets/images/proxy_class_diagram.png){ .float-left width=60% }
3-
![Sequenzdiagram des Proxy-Musters](../assets/images/proxy_sequence_diagram.png){ width=40% }
3+
![Sequenzdiagram des Proxy-Musters](../assets/images/proxy_sequence_diagram.png){ width=40% }
4+
5+
* **ISubjekt** definiert dabei das Interface für das Subjekt und den Proxy
6+
* **Subjekt** ist die Klasse, welche die eigentliche Logik implementiert
7+
* **Proxy** beinhaltet eine Eigenschaft, die eine Referenz zum Subjekt speichert. Methodenaufrufe werden in der Regel
8+
anschließend an das Subjekt delegiert.
9+
* **Client** ruft Methodenaufrufe über das definierte ISubject auf, sodass das
10+
[Liskovsche Substitutionsprinzip (LSP)](https://de.wikipedia.org/wiki/Liskovsches_Substitutionsprinzip) erfüllt bleibt.
11+
Es kann also mit beiden Klassen gleichweise kommunizieren.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
## \faicon{bullhorn} \hspace{.1cm} Verwendbarkeit
2+
Proxies werden häufig in Situationen verwendet, in welcher anstelles eines normalen Zeigers eine komplexere Referenz
3+
auf ein Objekt notwendig ist. Es wird dabei meistens unter folgende Arten von Proxies unterschieden:
4+
5+
* **Virtual Proxies** verzögern die Instanzzierung eines Objekts (Lazy Loading)
6+
* **Remote Proxies** kontrollieren einen Zugriff auf ein entferntes Objekt
7+
* **Protection Proxies** ermöglichen eine Zugriffskontrolle auf das Subjekt
8+
* **Cache Proxies** ermöglichen die Zwischenspeicherung zur schnelleren Auslieferung an den Client
9+
* **Logging Proxies** ermöglichen das Protokollieren eines Aufrufs, bevor dieser an das Subjekt delegiert wird.
10+
11+
Es existieren noch einige weitere Arten des Proxy-Pattern, welche allerdings seltener verwendet werden.

0 commit comments

Comments
 (0)