Skip to content

Commit b1fd4ac

Browse files
author
janschloesser
committed
📝 ✏️ Fixing typos
1 parent efb127f commit b1fd4ac

8 files changed

+25
-23
lines changed

docs/content/02_motivation_proxy-pattern.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
## \faicon{thumbs-up} \hspace{.1cm} Motivation
22

33
### Langweilig - die Erste: Sicherer Browser dank Zugriffsproxy
4-
Stell dir mal vor, dass du einen sicheren Browser entwickeln möchtest, welcher aus Kostengründen allerdings z.B. bereits
5-
vorhandene Browser-Schnittstellen im Hintergrund verwenden soll. Damit die Nutzer deines Browsers vor Datendiebstahl
4+
Stell dir mal vor, dass du einen sicheren Browser entwickeln möchtest, welcher aus Kostengründen allerdings z. B. bereits
5+
vorhandene Browserschnittstellen im Hintergrund verwenden soll. Damit die Nutzer deines Browsers vor Datendiebstahl
66
geschützt sind, soll dein Browser nur sichere HTTPS-Verbindungen erlauben und alle unsicheren HTTP-Verbindungen
7-
blockieren. Da der Quelltext deiner Engine allerdings nicht verändert werden kann/darf (z.B. aus Lizenzgründen),
7+
blockieren. Da der Quelltext deiner Engine allerdings nicht verändert werden kann/darf (z. B. aus Lizenzgründen),
88
kannst du die Zugriffsbeschränkung auf HTTPS nicht einfach so in das Ursprungsobjekt einfügen. Jetzt kommt dein
9-
_Zugriffsproxy_ ins Spiel: Er kontrolliert den Zugriff auf den relevanten Teil der Browser-Schnittstelle (hier das Subjekt)
9+
_Zugriffsproxy_ ins Spiel: Er kontrolliert den Zugriff auf den relevanten Teil der Browserschnittstelle (hier das Subjekt)
1010
und delegiert alle weiteren Methodenaufrufe direkt an das Subjekt weiter. Somit muss der Quelltext deiner geplanten
1111
Engine nicht verändert werden und alle sind glücklich!
1212

13-
### Motiviert - die Zweite: Lazy Loading mit virtuellem Proxy
13+
### Motiviert - die Zweite: Lazy-Loading mit virtuellem Proxy
1414
Ein weiteres sehr simples Beispiel, warum du den Zugriff zu einem Objekt kontrollieren möchtest, ist ein _virtueller Proxy_ zum
1515
verzögerten Laden eines Bildes (Lazy Loading). Es ist nämlich nicht immer notwendig, dass ein Bild bereits beim
1616
Instanzzieren eines Objekts in den Speicher geladen werden muss.
@@ -27,7 +27,7 @@ Das Laden des realen Bildes (also das Subjekt) wird also in diesem Beispiel durc
2727
und der Zugriff auf das tatsächliche Objekt wird soweit verzögert, bis er wirklich erst notwendig ist.
2828

2929
### Hochmotiviert - die Dritte: Reporting der Downloads dank Remote-Proxy
30-
Da du natürlich am Ende des Tages wissen möchtest, ob dein sicherer Browser von den Nutzer tatsächlich heruntergeladen
30+
Da du natürlich am Ende des Tages wissen möchtest, ob dein sicherer Browser von den Nutzern tatsächlich heruntergeladen
3131
wird, hast du dir bei der Planung der Website bereits einige Download-Statistiken überlegt:
3232

3333
- Datum
@@ -37,7 +37,7 @@ wird, hast du dir bei der Planung der Website bereits einige Download-Statistike
3737
Diese Statistiken werden über die Downloads über deine Website generiert. Da du den Browser aber noch zusätzlich
3838
auf Download-Portalen anbietest, musst du diese Zahlen natürlich ebenfalls in deine Statistik miteinbeziehen.
3939
Alle Download-Portale bieten dir API-Schnittstellen an, welche ebenfalls die oben genannten Daten liefern.
40-
Mithilfe des Proxy-Objekts kannst du nun in die ursprüngliche Zugriffkontrolle des Statistik-Objekts eingreifen und z.B.
40+
Mithilfe des Proxy-Objekts kannst du nun in die ursprüngliche Zugriffkontrolle des Statistik-Objekts eingreifen und z. B.
4141
die Eigenschaften des Objekts auf die von der jeweiligen API-Schnittstelle zur Verfügung gestellten Daten setzen.
4242
Weitere Methoden vom Proxies werden dann einfach an das eigentliche Reportobjekt (unserem Subjekt) delegiert.
4343

docs/content/03_structure_proxy-pattern.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
![Klassendiagram des Proxy-Musters](../assets/images/proxy_class_diagram.png){ .float-left width=60% }
33
![Sequenzdiagram des Proxy-Musters](../assets/images/proxy_sequence_diagram.png){ width=40% }
44

5-
* **ISubjekt** definiert dabei das Interface für das Subjekt und den Proxy
6-
* **Subjekt** ist die Klasse, welche die eigentliche Logik implementiert
5+
* **ISubject** definiert das Interface für das Subjekt und den Proxy
6+
* **Subject** ist die Klasse, welche die eigentliche Logik implementiert
77
* **Proxy** beinhaltet eine Eigenschaft, die eine Referenz zum Subjekt speichert. Methodenaufrufe werden in der Regel
88
anschließend an das Subjekt delegiert.
99
* **Client** ruft Methodenaufrufe über das definierte ISubject auf, sodass das
1010
[Liskovsche Substitutionsprinzip (LSP)](https://de.wikipedia.org/wiki/Liskovsches_Substitutionsprinzip) erfüllt bleibt.
11-
Es kann also mit beiden Klassen gleichweise kommunizieren.
11+
Er kann also mit beiden Klassen gleichweise kommunizieren.

docs/content/04_applicability_proxy-pattern.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
## \faicon{bullhorn} \hspace{.1cm} Verwendbarkeit
2-
Proxies werden häufig in Situationen verwendet, in welcher anstelles eines normalen Zeigers eine komplexere Referenz
2+
Proxies werden häufig in Situationen verwendet, in welcher anstelle eines normalen Zeigers eine komplexere Referenz
33
auf ein Objekt notwendig ist. Es wird dabei meistens unter folgende Arten von Proxies unterschieden:
44

5-
* **Virtual Proxies** verzögern die Instanzzierung eines Objekts (Lazy Loading)
6-
* **Remote Proxies** kontrollieren einen Zugriff auf ein entferntes Objekt
5+
* **Virtual Proxies** verzögern die Instanziierung eines Objekts (Lazy Loading)
6+
* **Remote Proxies** kontrollieren den Zugriff auf ein entferntes Objekt
77
* **Protection Proxies** ermöglichen eine Zugriffskontrolle auf das Subjekt
88
* **Cache Proxies** ermöglichen die Zwischenspeicherung zur schnelleren Auslieferung an den Client
99
* **Logging Proxies** ermöglichen das Protokollieren eines Aufrufs, bevor dieser an das Subjekt delegiert wird.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
## \faicon{american-sign-language-interpreting} \hspace{.1cm} In der realen Welt
22
Auch in der realen Welt verwenden wir regelmäßig die Prinzipien von Proxies. Nehmen wir mal an, du möchtest beim Aldi
33
nebenan deinen wöchentlichen Einkauf mit deiner Kreditkarte/Girocard bezahlen. Dabei ist deine Karte sozusagen
4-
der Proxy für dein Bankkonto. Deine Kreditkarte erlaubt dem Ladeninhaber die Bezahlung der Ware zu erhalten, ohne das er
4+
der Proxy für dein Bankkonto. Deine Kreditkarte erlaubt dem Ladeninhaber das Gelf für die Ware zu erhalten, ohne das er
55
direkten Zugriff auf dein gesamtes Bankkonto erhält.

docs/content/06_example_proxy-pattern.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ git clone https://github.com/it4need/php-proxy-pattern
66
```
77

88
Damit du das Proxy-Pattern von Grund auf verstehst, gibt es im [Repository](https://github.com/it4need/php-proxy-pattern)
9-
einige Beispiele in PHP zu den jeweiligen Proxies. Du findest im Repository ebenfalls Tests, damit du den Sinn von den
10-
einzelnen Proxies verstehst. Die Tests sind gleichzeitig deine Dokumentation für die Anwendung des Musters.
9+
einige Beispiele in PHP zu den jeweiligen Proxy-Varianten. Du findest im Repository ebenfalls Unit-Tests, damit du den
10+
Sinn von den einzelnen Proxies verstehst. Die Tests sind gleichzeitig deine Dokumentation für die Anwendung des Musters.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## \faicon{thumbs-up} \hspace{.1cm} Vorteile
2-
* Der Client bemerkt die Kontrolle des Objekts nicht
32
* Proxies können den Zugang zu Objekten kontrollieren, bevor sie die Methodenaufrufe an das Subjekt delegieren
3+
* Der Client bemerkt die Kontrolle des Objekts nicht
44
* Proxies funktionieren ebenfalls, wenn das Subjekt noch nicht im Speicher verfügbar ist (z.B. Lazy Loading)
55
* Proxies können helfen, die Geschwindigkeit der Applikation zu steigern (z.B. Caching)
66
* Proxies können die Interprozesskommunikation/Fernkommunikation zwischen Objekten ermöglichen
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
## \faicon{thumbs-up} \hspace{.1cm} Nachteile
22
* Proxies können je nach Implementierung die Antwortzeit verzögern
3-
* Proxies fügen eine weitere Abstraktionsschicht ein, welche zu Umwegen führen kann und die Kompexität steigert
4-
* Es müssen alle von der Schnittstelle definierten Methoden erstellt und an das Subjekt delegiert werden
3+
* Proxies fügen eine weitere Abstraktionsschicht ein, welche zu Umwegen führen kann und die Komplexität steigert
4+
* Es müssen alle von der Schnittstelle definierten Methoden für das Proxy erstellt und an das Subjekt delegiert werden
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
## \faicon{bezier-curve} \hspace{.1cm} Beziehungen zu anderen Entwurfsmuster
2-
* Das [_Decorator_-Entwurfsmuster](https://de.wikipedia.org/wiki/Decorator) sieht ähnlich aus, hat allerdings ein anderes Ziel. Er fügt zusätzliches Verhalten hinzu.
3-
* Das [_Facade_-Pattern](https://de.wikipedia.org/wiki/Fassade_(Entwurfsmuster)) kontrolliert nicht den Zugriff auf das Objekt; es stellt eine andere Schnittstelle bereit
4-
* Das [_Adapter_-Pattern](https://de.wikipedia.org/wiki/Adapter_(Entwurfsmuster)) verändert im Gegensatz zum Proxy-Entwurfsmuster die Schnittstellendefinition, aber nicht die
5-
Geschäftslogik (sinnbildmäßiger Stromadapter).
2+
* Das [_Decorator_-Entwurfsmuster](https://de.wikipedia.org/wiki/Decorator) sieht ähnlich aus, hat allerdings ein
3+
anderes Ziel: Er fügt zusätzliches Verhalten hinzu.
4+
* Das [_Facade_-Pattern](https://de.wikipedia.org/wiki/Fassade_(Entwurfsmuster)) kontrolliert nicht den Zugriff auf das
5+
Objekt; es stellt eine andere Schnittstelle bereit
6+
* Das [_Adapter_-Pattern](https://de.wikipedia.org/wiki/Adapter_(Entwurfsmuster)) verändert im Gegensatz zum
7+
Proxy-Entwurfsmuster die Schnittstellendefinition, aber nicht die Geschäftslogik (sinnbildmäßiger Stromadapter).

0 commit comments

Comments
 (0)