1
00:00:00,080 --> 00:00:01,920
Das sind auf jeden Fall 
typische. 

2
00:00:01,920 --> 00:00:04,400
Ich nenne es jetzt mal 
Alltagssituationen, die schon 

3
00:00:04,400 --> 00:00:09,680
auf das Pattern Proxy hinweisen.
Coding Buddies Dein Podcast rund

4
00:00:09,680 --> 00:00:12,960
um Softwareentwicklung und 
aktueller Tech News herzlich 

5
00:00:12,960 --> 00:00:26,300
Willkommen. 
Halli Hallo und herzlich 

6
00:00:26,300 --> 00:00:29,220
Willkommen hier zum Coding 
Buddies Podcast. 

7
00:00:29,220 --> 00:00:32,780
Dein Podcast rund um 
Softwareentwicklung und zwar mit

8
00:00:32,780 --> 00:00:35,460
mir und mit Tino. 
Der darf natürlich nicht fehlen,

9
00:00:35,460 --> 00:00:36,500
der sitzt mir hier schon 
gegenüber. 

10
00:00:36,500 --> 00:00:40,680
Tino, Wie geht's, wie steht's? 
Fabi, Was geht ab, was geht ab? 

11
00:00:40,680 --> 00:00:44,640
Ich sag mal deinen Namen auch 
Fabi Fabi, der andere ist fabi 

12
00:00:48,800 --> 00:00:50,520
was geht. 
Ja. 

13
00:00:50,520 --> 00:00:55,680
Ist gut, gut, gut, alles gut. 
Wir waren ja ein bisschen in den

14
00:00:55,680 --> 00:01:00,000
Bergen, haben uns sportlich 
betätigt, sagt man das so 

15
00:01:00,240 --> 00:01:03,480
beschäftigt? 
Wir waren ja ein bisschen 

16
00:01:03,480 --> 00:01:05,840
snowboarden und haben einfach 
mal so ein bisschen die Bergluft

17
00:01:05,840 --> 00:01:07,360
genossen. 
Und ich muss sagen, es war eine 

18
00:01:07,360 --> 00:01:11,040
sehr, sehr geile Woche. 
Fabi hat mir gut gefallen, aber 

19
00:01:11,040 --> 00:01:14,320
jetzt geht's wieder ran. 
Podcast neue Folge steht an. 

20
00:01:14,880 --> 00:01:20,800
Jetzt setzt die Post Berg 
phasische Depression ein. 

21
00:01:20,880 --> 00:01:23,040
So nennt man das. 
Gibt es so eine Post? 

22
00:01:23,040 --> 00:01:25,520
Berg Depression? 
Gibt es sowas bei dir? 

23
00:01:25,680 --> 00:01:29,040
Also hast du danach das Gefühl 
so ah. 

24
00:01:29,680 --> 00:01:32,120
Würd jetzt schon gern wieder den
Lift hochnehmen und 

25
00:01:32,120 --> 00:01:34,560
weiterfahren. 
Ja, ist immer so n Unterschied. 

26
00:01:34,560 --> 00:01:37,320
Also es ist zwiegespalten, weil 
auf der einen Seite tut mir 

27
00:01:37,320 --> 00:01:40,480
alles weh, ne so n bisschen zum 
Recht bestätigen. 

28
00:01:40,480 --> 00:01:43,600
Ja, geht mir auch so. 
Und da denkt sich mein Körper, 

29
00:01:43,600 --> 00:01:46,400
wahrscheinlich ist in Ordnung, 
wenn man jetzt nicht noch 

30
00:01:46,400 --> 00:01:48,360
weitermacht. 
Aber so der Kopf denkt sich 

31
00:01:48,360 --> 00:01:51,600
schon so, wär schon geil so. 
Weißt du ja, geht mir auch so. 

32
00:01:51,680 --> 00:01:54,320
Ey, das ist halt. 
Es ist halt schade, dass es so 

33
00:01:54,400 --> 00:01:56,800
saisonal ist. 
Der Sport ne, also wir beide 

34
00:01:56,800 --> 00:01:59,720
sind ja schon große Fans vom 
Snowboarden an sich und würden 

35
00:01:59,720 --> 00:02:02,680
es gerne ja auch öfter machen, 
aber es ist natürlich immer mit 

36
00:02:02,680 --> 00:02:06,720
einer Reise mit Urlaub, mit Geld
logischerweise und auch 

37
00:02:06,720 --> 00:02:10,280
natürlich mit dem Wetter 
verbunden und deswegen hab ich 

38
00:02:10,280 --> 00:02:13,840
immer so ne Phase wo ich mir 
denke, ahh er hätte jetzt schon 

39
00:02:13,840 --> 00:02:19,080
Bock noch mal und jetzt wieder n
ganzes Jahr warten ne das ist. 

40
00:02:20,080 --> 00:02:22,360
Geht mir auch. 
Ärgerlich, ja, aber es gibt 

41
00:02:22,360 --> 00:02:25,440
natürlich auch andere coole 
Highlights dieses Jahr, die noch

42
00:02:25,440 --> 00:02:28,160
so anstehen, die wir uns auch 
noch so vorgenommen haben. 

43
00:02:28,160 --> 00:02:31,120
Worauf man sich freuen kann, bis
denn quasi wieder der nächste 

44
00:02:31,120 --> 00:02:33,440
Skiurlaub. 
Da ist außerdem ist man ja nach 

45
00:02:33,440 --> 00:02:35,800
Hause gekommen und es hat mehr 
geschneit hier als in den 

46
00:02:35,920 --> 00:02:38,000
Bergen. 
Das kommt noch hinzu. 

47
00:02:38,000 --> 00:02:41,200
Also es ist super weiß hier 
gerade bei dir auch ne, du hast 

48
00:02:41,200 --> 00:02:44,080
ja schon berichtet, so privat 
sage ich mal, dass du nur am 

49
00:02:44,080 --> 00:02:46,960
Schnee schippen bist. 
Da ist ja jetzt so deine zweit 

50
00:02:46,960 --> 00:02:49,200
Lieblingsbeschäftigung verbunden
mit Schnee, ne. 

51
00:02:51,200 --> 00:02:53,800
Aber was natürlich auch immer 
jede Woche ein Highlight ist, 

52
00:02:53,800 --> 00:02:55,920
ist die neue Podcast Folge und 
ich habe Bock. 

53
00:02:56,000 --> 00:02:59,200
Ich habe richtig Lust heute eine
Folge aufzunehmen und du hast ja

54
00:02:59,200 --> 00:03:00,960
auch ein cooles Thema 
mitgebracht, denn wir wollen 

55
00:03:00,960 --> 00:03:05,520
heute, das hast du ja schon mal 
angeteasert, mit einer Reihe 

56
00:03:05,520 --> 00:03:07,760
weitermachen, wo wir jetzt 
glaube ich, schon eine Weile 

57
00:03:07,760 --> 00:03:10,000
nicht zu gemacht haben. 
Also ich glaube, es gab jetzt 

58
00:03:10,000 --> 00:03:12,720
ein paar Folgen nicht bezüglich 
dieser Reihe, deswegen geht es 

59
00:03:12,720 --> 00:03:15,600
da heute weiter, und zwar mit 
unserer Design Pattern Reihe, 

60
00:03:16,320 --> 00:03:18,000
erzähl doch mal was hast du denn
da so? 

61
00:03:18,800 --> 00:03:20,880
Na. 
Wir haben ja schon einige 

62
00:03:20,880 --> 00:03:24,560
Patterns durchgesprochen 
beziehungsweise besprochen und 

63
00:03:24,800 --> 00:03:26,800
was wir uns diesmal angucken 
wollen, ist wieder n 

64
00:03:26,800 --> 00:03:31,200
strukturpattern und ich glaube 
so ungefähr das letzte 

65
00:03:31,200 --> 00:03:34,560
Strukturpattern was jetzt so bei
uns auf der Agenda steht. 

66
00:03:35,840 --> 00:03:38,320
Ja, es geht ja, könnt sein, ja. 
Und genau. 

67
00:03:38,320 --> 00:03:41,200
Und es geht um das Proxy 
Pattern. 

68
00:03:41,360 --> 00:03:44,480
Ja, ich überlege gerade, was 
hatten wir denn alles zu 

69
00:03:44,480 --> 00:03:46,480
strukturpattern. 
Wir hatten auf jeden Fall das 

70
00:03:46,480 --> 00:03:51,560
Adapter Pattern besprochen. 
Die Decorator Bridge, das sind 

71
00:03:51,560 --> 00:03:54,000
ja so gängige, also auch hier 
der Disclaimer. 

72
00:03:54,000 --> 00:03:56,280
Wir werden natürlich nicht alle 
Pattern besprechen können in 

73
00:03:56,280 --> 00:03:58,960
dieser Reihe, weil dann machen 
wir den Podcast nur noch zu 

74
00:03:58,960 --> 00:04:02,720
Design patterns, aber zu den 
Struktur hatten wir auf jeden 

75
00:04:02,720 --> 00:04:06,040
Fall schon die und Proxy ist 
eigentlich noch eine ganz coole 

76
00:04:06,040 --> 00:04:10,680
Ergänzung, weil wenn man jetzt 
so noch mal zurückblickt, sagt 

77
00:04:10,680 --> 00:04:13,680
ja okay Adapter Pattern, was war
denn eigentlich so der Sinn 

78
00:04:13,680 --> 00:04:16,320
hinter dem Adapter Pattern haben
wir gesagt, ja, eigentlich. 

79
00:04:17,120 --> 00:04:19,360
Dinge, die nicht passen, werden 
passend gemacht. 

80
00:04:19,360 --> 00:04:22,000
So ja, also ich hab das ist ein 
Pattern, was dafür sorgt, dass 

81
00:04:22,000 --> 00:04:26,240
ich adaptieren kann an eine 
gewisse Schnittstelle um mich 

82
00:04:26,400 --> 00:04:29,960
kompatibel zu machen. 
Wir haben das Decorator Pattern 

83
00:04:29,960 --> 00:04:32,480
besprochen, auch beispielsweise,
dass wir sagen, OK, wir 

84
00:04:32,640 --> 00:04:36,640
dekorieren so unsere Objekte, 
wie wir das wollen, ne und bauen

85
00:04:36,640 --> 00:04:41,080
immer mehr dazu, also wir 
dekorieren immer mehr und jetzt 

86
00:04:41,080 --> 00:04:44,880
ist natürlich die Frage. 
Warum noch ein Pattern wie das 

87
00:04:44,880 --> 00:04:47,280
Proxy pattern? 
Ja, also was ist jetzt der Sinn 

88
00:04:47,280 --> 00:04:50,880
dahinter und ich finde, dass das
Proxy pattern sich da ganz gut 

89
00:04:50,880 --> 00:04:53,960
abhebt, das würde ich auch gerne
herauskristallisieren in der 

90
00:04:53,960 --> 00:04:57,360
Folge mit dir zusammen, dass man
ganz klar weiß okay ja okay, das

91
00:04:57,360 --> 00:05:00,120
macht Sinn, noch ein Pattern 
mehr, da hat sich jemand noch 

92
00:05:00,120 --> 00:05:02,760
mal was überlegt, was wirklich 
noch mal was anderes ist und 

93
00:05:02,760 --> 00:05:07,840
nicht die xte Variante von dem 
gleichen Prinzip und deswegen 

94
00:05:07,840 --> 00:05:11,240
würde ich sagen. 
Lass uns heute mal darüber 

95
00:05:11,240 --> 00:05:14,640
sprechen, welches anderes Ziel 
steckt denn hinter dem Proxy 

96
00:05:14,640 --> 00:05:17,920
Pattern? 
Ja, genau. 

97
00:05:17,920 --> 00:05:21,480
Also ich meine, du kennst ja 
wahrscheinlich die so ein, ich 

98
00:05:21,480 --> 00:05:24,600
sag mal gewisse 
Alltagssituationen, die man in 

99
00:05:25,120 --> 00:05:27,600
der Softwareentwicklung kennt, 
jetzt nicht komplett im Alltag, 

100
00:05:28,360 --> 00:05:32,880
aber wenn du jetzt eine Methode 
aufrufst und irgendwas wird, sag

101
00:05:32,880 --> 00:05:36,800
ich jetzt mal gecasht oder 
manchmal hast du eine Funktion 

102
00:05:36,800 --> 00:05:39,600
wo du dir denkst. 
Na, aber die Funktion darf ich 

103
00:05:39,600 --> 00:05:42,400
aber eigentlich unter den und 
den Umständen vielleicht gar 

104
00:05:42,400 --> 00:05:45,760
nicht benutzen. 
Und das sind auf jeden Fall 

105
00:05:45,760 --> 00:05:47,360
typische. 
Ich nenne es jetzt mal 

106
00:05:47,360 --> 00:05:53,680
Alltagssituationen, die schon 
auf das Pattern Proxy hinweisen,

107
00:05:53,680 --> 00:05:56,800
so einen Kleinen hin geben, so 
das könnte man da an der Stelle 

108
00:05:56,800 --> 00:06:00,920
verwenden. 
Na ja, so Alltagssituationen, 

109
00:06:00,920 --> 00:06:04,080
die mir da einfallen in die 
Richtung ist ja auch zum 

110
00:06:04,080 --> 00:06:06,640
Beispiel. 
Also auch natürlich technisch, 

111
00:06:06,640 --> 00:06:08,320
aber jetzt nicht direkt 
Softwareentwicklung. 

112
00:06:08,480 --> 00:06:12,160
Aber wenn ich zum Beispiel 
irgendwelche Videos mir anschaue

113
00:06:12,160 --> 00:06:17,040
oder so ne, dass die das auch 
gecasht wird beispielsweise oder

114
00:06:17,040 --> 00:06:21,920
Bilder, ne, dass ich halt nicht 
wirklich merke oder hoffentlich 

115
00:06:21,920 --> 00:06:25,200
wenn es gut gemacht ist, nicht 
direkt merke, ob das Bild noch 

116
00:06:25,200 --> 00:06:29,280
mal neu oder der Inhalt der mir 
angezeigt wird neu geholt wird 

117
00:06:29,360 --> 00:06:33,360
oder einfach nur gespeichert 
wurde und erneut angezeigt 

118
00:06:33,360 --> 00:06:35,800
wurde. 
Und da sind so Bilder, Videos, 

119
00:06:35,800 --> 00:06:38,640
so klassische Beispiele für ja, 
für Caching. 

120
00:06:38,640 --> 00:06:41,200
Ja, und mit mit dem Proxy 
Pattern kann ich halt dieses 

121
00:06:41,200 --> 00:06:45,680
Caching auch gut umsetzen und 
das sind halt schon so Sachen, 

122
00:06:45,680 --> 00:06:49,520
die eigentlich sage ich mal 
überall, wie soll ich sagen, 

123
00:06:49,520 --> 00:06:53,360
einem begegnen, ja ich meine, 
man kennt das vielleicht auch 

124
00:06:53,600 --> 00:06:54,880
noch mal, um die 
Softwareentwicklung 

125
00:06:54,880 --> 00:06:58,240
aufzugreifen, gerade so 
Frontentwickler und Webseiten, 

126
00:06:59,200 --> 00:07:01,880
dass man so sagt okay ja, jetzt 
habe ich irgendwie Daten 

127
00:07:01,880 --> 00:07:03,720
geändert, ey, warte mal. 
Aber wenn ich jetzt auf die 

128
00:07:03,720 --> 00:07:05,200
Seite gehe jetzt. 
Zeigt er mir aber hier noch alte

129
00:07:05,200 --> 00:07:09,680
Sachen an, beispielsweise wenn 
das auch gecasht wurde und dass 

130
00:07:09,680 --> 00:07:13,040
dieses typische Invalidieren des
cashes, Ich glaube, jeder jedem 

131
00:07:13,040 --> 00:07:15,600
ist das denn schon mal begegnet 
ist, ein klassisches Beispiel. 

132
00:07:16,160 --> 00:07:19,760
Und genau über dieses Pattern 
wollen wir heute reden. 

133
00:07:19,920 --> 00:07:22,880
Es ist auch nicht kompliziert, 
aber sehr mächtig, würde ich mal

134
00:07:22,880 --> 00:07:26,000
sagen, also man kann wirklich 
coole Sachen damit machen und es

135
00:07:26,000 --> 00:07:29,440
ist nicht so schwer umzusetzen, 
was ja natürlich auch gerade 

136
00:07:29,440 --> 00:07:32,400
weil in unserer Community auch 
viele Einsteiger dabei sind. 

137
00:07:33,120 --> 00:07:35,520
Sag ich mal, ist es auch sehr 
einsteigerfreundlich und 

138
00:07:35,520 --> 00:07:38,320
geeignet dafür, sich das auf 
jeden Fall mal anzugucken, weil 

139
00:07:38,320 --> 00:07:41,280
wir haben ja auch gesagt, so das
Beste ist sich so n Patter 

140
00:07:41,280 --> 00:07:43,680
nehmen das Mal auszuprobieren, 
wirklich mal diese vor und 

141
00:07:43,680 --> 00:07:46,320
Nachteile die wir ja heute 
wieder nennen werden mal zu 

142
00:07:46,320 --> 00:07:48,560
fühlen. 
Ja also mal wirklich mal in die 

143
00:07:48,560 --> 00:07:52,600
Erfahrung damit zu gehen um dann
einschätzen zu können, wann kann

144
00:07:52,600 --> 00:07:55,920
ich es gut verwenden, wann ist 
es eher nicht so geeignet und 

145
00:07:55,920 --> 00:07:57,920
dazu begleitend dann die Folge 
heute. 

146
00:07:58,560 --> 00:08:00,640
Props auf jeden Fall. 
Alle, die das auch machen. 

147
00:08:00,640 --> 00:08:03,200
Wir haben ja schon n bisschen 
gehört, dass es auf jeden Fall 

148
00:08:03,440 --> 00:08:06,720
Leute gibt, die das auch 
ausprobieren, dass sie sich 

149
00:08:06,720 --> 00:08:08,680
wirklich mal hinsetzen und 
sagen, ich probier es mal so, 

150
00:08:08,680 --> 00:08:10,480
ich Code jetzt mal so n Petter 
nach, das ist schon cool. 

151
00:08:11,280 --> 00:08:13,760
Genau und deswegen auch da noch 
mal die Anmerkung, Liebe 

152
00:08:13,760 --> 00:08:16,800
Zuhörer, liebe Zuhörer, falls du
es gerne ausprobieren möchtest 

153
00:08:16,800 --> 00:08:19,320
oder Ausprobierst und Fragen 
dazu hast, komm gerne auf 

154
00:08:19,320 --> 00:08:22,480
unserem Discord vorbei. 
Da findest du Leute, die genau 

155
00:08:22,480 --> 00:08:25,440
den gleichen Weg gehen und das 
Ausprobieren Fragen dazu 

156
00:08:25,440 --> 00:08:26,560
stellen. 
Man kann sich wunderbar 

157
00:08:26,560 --> 00:08:29,200
austauschen und vor allem gibt 
es sehr erfahrene 

158
00:08:29,200 --> 00:08:31,920
Entwicklerinnen und Entwickler, 
da die auch immer hilfsbereit 

159
00:08:31,920 --> 00:08:35,360
sind und da gerne ein Feedback 
geben und nur so kann man 

160
00:08:35,360 --> 00:08:38,559
eigentlich sage ich mal das 
Bestmögliche in seinem Lernweg 

161
00:08:38,559 --> 00:08:42,799
herausholen. 
Und deswegen lass uns mal drüber

162
00:08:42,799 --> 00:08:45,120
quatschen. 
Wie sieht eigentlich so ganz 

163
00:08:45,120 --> 00:08:50,200
allgemein das Proxy Pattern aus,
bevor wir mal so auf Beispiele 

164
00:08:50,200 --> 00:08:52,960
eingehen, aber erstmal so was 
ist so der Grundgedanke, so 

165
00:08:52,960 --> 00:08:55,280
diese Kernaussage hinter dem 
Pattern. 

166
00:08:55,680 --> 00:09:00,640
Ja, also quasi die Kernidee. 
Ne, ja du hast ja, also der 

167
00:09:00,640 --> 00:09:03,160
Proxy steht natürlich im 
Mittelpunkt, das ist ich hab 

168
00:09:03,160 --> 00:09:05,360
mich früher hab ich mich mal 
gefragt, was soll so n Proxy 

169
00:09:05,360 --> 00:09:10,200
sein ne also ich hab einfach. 
Quasi mir gedacht, so okay 

170
00:09:10,200 --> 00:09:12,320
irgendwas, also weißt du im 
Studium auch ne, dann dachte ich

171
00:09:12,320 --> 00:09:15,680
mir so Proxy okay was soll das 
sein Proxy, dann googelst du das

172
00:09:15,680 --> 00:09:19,120
ja Stellvertreter denkst du dir 
so okay Stellvertreter wofür 

173
00:09:19,120 --> 00:09:22,160
wofür ein Stellvertreter? 
Ich weiß nicht, ich hab auch 

174
00:09:22,160 --> 00:09:24,760
manchmal das Gefühl, dass ich 
damals im Studium manchmal so 

175
00:09:24,760 --> 00:09:27,920
ein paar Sachen noch gar nicht 
verstehen wollte, weil 

176
00:09:28,080 --> 00:09:29,360
eigentlich. 
So im Nachhinein. 

177
00:09:30,640 --> 00:09:34,560
Eigentlich ist es ja wirklich 
relativ einfach zu verstehen. 

178
00:09:36,040 --> 00:09:40,320
Ein Stellvertreter macht etwas 
für jemanden, der es eigentlich 

179
00:09:40,320 --> 00:09:44,080
machen soll, ne. 
Also du hast quasi ich sag mal 

180
00:09:44,080 --> 00:09:48,400
einen Client ne oder ein echtes 
Objekt irgendwo im Code, was 

181
00:09:48,400 --> 00:09:52,200
etwas tun soll, ne egal was du 
hast, irgendein Objekt, das soll

182
00:09:52,200 --> 00:09:55,680
etwas tun und du hast einen 
Proxy und dieser Proxy sagt OK 

183
00:09:55,680 --> 00:10:00,960
pass auf echtes Objekt ich. 
Vertrete dich und mache das, was

184
00:10:00,960 --> 00:10:03,680
du eigentlich machen sollst, 
primär und bin der 

185
00:10:03,680 --> 00:10:07,600
Ansprechpartner sozusagen ne. 
Das heißt am Ende hast du zwar 

186
00:10:07,600 --> 00:10:11,040
dieses echte Objekt, was das 
tut, was was getan werden muss, 

187
00:10:11,040 --> 00:10:16,480
aber ich sag mal der Code, ja 
der restliche Code deiner deiner

188
00:10:16,480 --> 00:10:20,240
Codebase spricht nur mit dem 
Proxy mit dem Stellvertreter ne 

189
00:10:21,040 --> 00:10:23,520
und der. 
Kann dann halt bestimmte Dinge 

190
00:10:23,520 --> 00:10:26,000
übernehmen, bevor wirklich eine 
irgendeine Ausführung passiert. 

191
00:10:26,000 --> 00:10:29,840
Also der Proxy kann zum Beispiel
irgendwas prüfen, der kann also,

192
00:10:29,840 --> 00:10:32,800
ob es zum Beispiel ob eine 
valide Eingabe da ist, er kann 

193
00:10:32,800 --> 00:10:35,440
irgendwie kontrollieren, ob 
irgendwelche Zugriffsrechte 

194
00:10:35,840 --> 00:10:39,280
vorhanden sind, er kann 
irgendwas delegieren, weil 

195
00:10:39,280 --> 00:10:42,160
vielleicht ne wie du meintest 
schon irgendein Cash aufgebaut 

196
00:10:42,160 --> 00:10:44,400
wurde oder irgendwas, das heißt 
vielleicht muss eigentlich das 

197
00:10:44,400 --> 00:10:46,520
echte Objekt gar nicht bemüht 
werden oder was auch immer, 

198
00:10:46,520 --> 00:10:49,320
aber. 
Aber am Ende ist es relativ um 

199
00:10:49,320 --> 00:10:52,960
das zusammenzufassen. 
Du hast irgendwie deinen Code, 

200
00:10:53,040 --> 00:10:55,840
der möchte irgendwas ausführen, 
ne irgendeine Funktion aufrufen 

201
00:10:56,160 --> 00:10:58,320
und du kannst jetzt entweder 
sagen, OK, ich rufe diese echte 

202
00:10:58,320 --> 00:11:01,200
Funktion auf oder ich gehe über 
diesen Weg des Proxys, diesen 

203
00:11:01,200 --> 00:11:05,920
Stellvertreter der sagt OK pass 
auf, Ich möchte das Ausführen 

204
00:11:05,920 --> 00:11:08,160
und der Stellvertreter sagt OK 
ich guck mal was wir machen 

205
00:11:08,160 --> 00:11:12,120
können, so nach dem Motto. 
Ja, also Stellvertreter ist da 

206
00:11:12,120 --> 00:11:14,720
halt auch wirklich die Richtige.
Sag ich mal. 

207
00:11:14,720 --> 00:11:16,920
Der richtige Begriff, an den man
da denken sollte. 

208
00:11:16,920 --> 00:11:21,680
Und weil du ja meintest so echte
Anwendung oder echte Parallelen 

209
00:11:22,080 --> 00:11:25,680
im normalen Leben nicht in der 
Softwareentwicklung sag ich mal.

210
00:11:25,920 --> 00:11:28,160
Ich mein jeder kennt es ja auch,
wenn ich zum Beispiel irgendein 

211
00:11:28,160 --> 00:11:31,160
Problem hab bei einem Service, 
bei einer Dienstleistung die ich

212
00:11:31,160 --> 00:11:35,520
verwende, ne Versicherung der 
Internetanbieter oder weiß ich 

213
00:11:35,520 --> 00:11:38,720
was ne? 
Wenn ich jetzt da eine Anfrage 

214
00:11:38,720 --> 00:11:42,360
hab, ne an den eigentlichen 
Sachbearbeiter oder die 

215
00:11:42,360 --> 00:11:45,200
Sachbearbeiterin ist es ja 
wirklich oft so, dass ich 

216
00:11:45,200 --> 00:11:48,560
erstmal über eine Hotline gehen 
muss, was am Ende so gesehen 

217
00:11:48,560 --> 00:11:52,080
auch nichts anderes als ein 
Proxy ist, dass ich da anrufe. 

218
00:11:52,080 --> 00:11:56,720
Für mich ist es, ich möchte zu 
meinem Sachverhalt eine Lösung 

219
00:11:56,720 --> 00:11:59,800
kriegen, eine Frage stellen oder
was das ist für mich die gleiche

220
00:11:59,800 --> 00:12:02,720
Schnittstelle, ob am Telefon 
direkt der Berater rangeht, was 

221
00:12:02,720 --> 00:12:06,480
natürlich wünschenswert wäre, 
also an das echte ranzukommen 

222
00:12:06,480 --> 00:12:08,160
und. 
Wird aber sehr wahrscheinlich 

223
00:12:08,160 --> 00:12:11,600
eine Proxy dazwischen sein und 
zwar ein Kundenservice, der 

224
00:12:11,600 --> 00:12:14,240
erstmal genau diese Aufgaben die
du meintest übernimmt. 

225
00:12:14,640 --> 00:12:17,400
Wer bist du? 
Deine Kundennummer bitte gibt es

226
00:12:17,400 --> 00:12:21,280
vielleicht Lösungen für dich so 
aus der aus dem FAQ sage ich mal

227
00:12:21,280 --> 00:12:25,240
auf das man verweisen kann, dass
man quasi das echte, den echten 

228
00:12:25,240 --> 00:12:27,520
Sachbearbeiter oder 
Sachbearbeiterin gar nicht 

229
00:12:27,600 --> 00:12:30,480
damit. 
Ich nenn es jetzt mal provokativ

230
00:12:30,480 --> 00:12:33,840
belästigen muss ne oder die Zeit
verschwenden muss, wenn ich 

231
00:12:33,840 --> 00:12:38,400
vorgelagert als Proxy schon ne 
Lösung bieten kann oder weiß ey 

232
00:12:38,400 --> 00:12:40,800
du bist gar nicht Kunde hier, 
warum soll ich dich vermitteln, 

233
00:12:40,800 --> 00:12:44,320
so nach dem Motto. 
Und das ist es halt ne und Proxy

234
00:12:44,480 --> 00:12:49,200
hat halt diese Zusatzfunktion, 
was eigentlich nicht diese 

235
00:12:49,200 --> 00:12:52,320
Business Logik ist. 
So zum Beispiel wie ne Frage 

236
00:12:52,320 --> 00:12:55,360
beantworten, Daten ändern, 
Verträge abschließen oder weiß 

237
00:12:55,360 --> 00:12:58,960
ich was ne also diese 
eigentliche Funktion sondern nur

238
00:12:58,960 --> 00:13:02,400
zusätzliche Logik wie 
beispielsweise überprüfe ob du 

239
00:13:02,400 --> 00:13:05,600
wirklich n Kunde bist. 
Überprüfe, ob das überhaupt ein 

240
00:13:05,600 --> 00:13:08,240
Fall ist, den ich weiter 
delegieren kann. 

241
00:13:08,640 --> 00:13:11,120
Ist es ein Scherzanruf? 
Keine Ahnung, du weißt was ich 

242
00:13:11,120 --> 00:13:14,320
meine, ja, also darfst sie 
fragen, ist es vielleicht ein 

243
00:13:14,320 --> 00:13:17,280
Scherzanruf? 
Sagen Sie wirklich ein Problem? 

244
00:13:17,280 --> 00:13:23,200
Nein, gut, tschüss und das ist 
es halt am Ende ne für den 

245
00:13:23,200 --> 00:13:25,120
Client wie du so schön gesagt 
hast. 

246
00:13:25,120 --> 00:13:29,200
Also für mich als Anrufer, für 
mich als. 

247
00:13:30,320 --> 00:13:33,760
Ja, Nutzer einer Software, wie 
auch immer ne auf welcher Ebene 

248
00:13:33,760 --> 00:13:38,400
man jetzt Client definiert, am 
Ende ist das Interface was ich 

249
00:13:38,400 --> 00:13:41,760
bedienen möchte die 
Schnittstelle, die Funktion das 

250
00:13:41,760 --> 00:13:45,160
gleiche und ich weiß nicht, 
hängt da jetzt noch n Proxy 

251
00:13:45,160 --> 00:13:48,400
dazwischen oder hab ich Kontakt 
zu dem echten Service den ich 

252
00:13:48,400 --> 00:13:51,880
verwenden möchte und das merkt 
man als Client nicht und das ist

253
00:13:51,880 --> 00:13:54,320
halt auch schon n Unterschied zu
anderen Pattern. 

254
00:13:54,640 --> 00:13:58,240
Da hier schon mal die Anmerkung,
weswegen ist halt n anderen 

255
00:13:58,240 --> 00:14:03,560
Ansatz verfolgt, weil es für 
mich als Client kein Unterschied

256
00:14:03,560 --> 00:14:06,720
macht. 
Ja also. 

257
00:14:06,960 --> 00:14:10,000
Sagen wir mal so, ich Ruf bei 
einem Kundenservice an und ich 

258
00:14:10,000 --> 00:14:11,920
weiß nicht welche Rolle er da 
drin hat. 

259
00:14:11,920 --> 00:14:14,480
Ist er wirklich nur ein Proxy 
oder ist er vielleicht schon ein

260
00:14:14,480 --> 00:14:17,880
Berater oder einen bearbeit 
Sachbearbeiter, der aber nicht 

261
00:14:17,880 --> 00:14:20,800
meinen Fall macht und dann noch 
mal weiter delegiert zu dem 

262
00:14:20,800 --> 00:14:22,880
Sachbearbeiter der meinen Fall 
bearbeitet? 

263
00:14:23,120 --> 00:14:26,560
Wie auch immer, das ist für 
mich, ich weiß es nicht, ich 

264
00:14:26,560 --> 00:14:28,880
habe nur ein Problem was ich 
quasi über die Schnittstelle 

265
00:14:28,880 --> 00:14:32,520
Telefon lösen möchte sozusagen, 
also so kann man sich das halt 

266
00:14:32,520 --> 00:14:33,800
ganz gut vorstellen. 
Ja ich. 

267
00:14:34,040 --> 00:14:35,600
Finde es ganz gut, dass du auch 
sagst. 

268
00:14:35,840 --> 00:14:37,560
Weil ich dich gerade fragen 
wollte, wie kann man das denn 

269
00:14:37,560 --> 00:14:40,560
umsetzen? 
Ja, dass man vielleicht auch gar

270
00:14:40,560 --> 00:14:43,320
nicht weiß, mit wem man quasi 
gerade spricht, weil du halt 

271
00:14:43,320 --> 00:14:46,160
eben dieses Interface hast und 
der Proxy genauso wie das 

272
00:14:46,160 --> 00:14:49,920
eigentliche Objekt eben die 
beide dieses Interface 

273
00:14:49,920 --> 00:14:51,960
implementieren. 
Ne, also kannst dir das ja auch 

274
00:14:51,960 --> 00:14:54,360
ungefähr so vorstellen, als 
würdest du irgendwie sagen wir 

275
00:14:54,360 --> 00:14:58,160
mal was drucken wollen und du 
hast sozusagen 2 Türen ne und 

276
00:14:58,160 --> 00:15:01,040
auf der einen Tür steht halt 
drauf Drucker a und auf der 

277
00:15:01,040 --> 00:15:05,600
anderen steht drauf Drucker b. 
Aber du kannst halt beiden etwas

278
00:15:05,600 --> 00:15:07,000
geben. 
Du musst halt nur irgendwie den 

279
00:15:07,000 --> 00:15:09,400
Dateinamen geben und sagen, das 
möchte ich bitte gedruckt haben 

280
00:15:09,400 --> 00:15:11,960
und am Ende ist es halt einfach 
nur quasi die gleiche 

281
00:15:11,960 --> 00:15:14,200
Schnittstelle. 
Ne, du gibst in jede Tür, damit 

282
00:15:14,200 --> 00:15:16,120
man sich es besser jetzt 
vorstellen kann, einfach nur den

283
00:15:16,120 --> 00:15:18,760
Dateinamen rein, ne auf dem 
Blatt Papier oder so und dann 

284
00:15:18,760 --> 00:15:22,480
nimmt das jemand an und druckt 
das am Ende ne und also das 

285
00:15:22,480 --> 00:15:26,240
Interface ist genau das Gleiche,
das heißt dieses die Funktion 

286
00:15:26,240 --> 00:15:30,800
drucken ne die sozusagen das 
Interface halt hat haben beide. 

287
00:15:31,120 --> 00:15:35,240
Implementieren beide ne jetzt 
ist er natürlich nur sozusagen 

288
00:15:35,280 --> 00:15:39,040
der Under The Hood ist es ja so,
dass der Proxy im Endeffekt, 

289
00:15:39,040 --> 00:15:43,560
also sagen wir mal erstmal das 
das echte Objekt selber ne, also

290
00:15:43,560 --> 00:15:46,960
der ich nenn es mal Drucker ne 
der druckt dann wirklich dieses 

291
00:15:46,960 --> 00:15:50,080
Dokument ne ohne wenn und aber, 
also da wird eigentlich das wird

292
00:15:50,080 --> 00:15:52,480
einfach genommen und wird 
gedruckt ne OK das die Datei 

293
00:15:52,480 --> 00:15:55,040
zack hau ich dir raus wenn du 
jetzt aber zum Beispiel diesen 

294
00:15:55,040 --> 00:15:57,240
Proxy hast, dann kann der 
vielleicht noch unter anderem 

295
00:15:57,240 --> 00:16:00,280
sowas checken wie weiß ich 
nicht. 

296
00:16:01,120 --> 00:16:05,080
Bist du alt genug? 
Hast du schon Druck? 

297
00:16:05,360 --> 00:16:07,680
Genau. 
Und dann gibt der Proxy das aber

298
00:16:07,680 --> 00:16:09,920
im Endeffekt weiter an das echte
Objekt. 

299
00:16:10,080 --> 00:16:14,240
So und wenn du das jetzt so in 
in Code hast, dann haben wir ja 

300
00:16:14,240 --> 00:16:16,320
schon von Interfaces gesprochen,
du hast den Proxy, der 

301
00:16:16,320 --> 00:16:19,360
implementiert das Interface, du 
hast das echte Objekt, was das 

302
00:16:19,360 --> 00:16:22,520
Interface implementiert, beide 
müssen also eine bestimmte 

303
00:16:22,520 --> 00:16:24,720
Funktion wie zum Beispiel 
drucken implementieren als 

304
00:16:24,720 --> 00:16:27,840
Beispiel. 
Und dann ist es aber so, dass 

305
00:16:27,840 --> 00:16:32,960
der Proxy selber noch das echte 
Objekt hält und mit diesem 

306
00:16:32,960 --> 00:16:37,200
echten Objekt arbeiten kann. 
Also genau das ist sagen kann 

307
00:16:37,200 --> 00:16:38,240
das. 
Ist nämlich genau der 

308
00:16:38,240 --> 00:16:42,400
entscheidende Punkt ne, weil der
Proxy wird die echte Aufgabe 

309
00:16:42,400 --> 00:16:46,560
niemals übernehmen, er hat wird 
keine Business Logik beinhalten,

310
00:16:46,720 --> 00:16:50,240
sondern nur diese 
Zusatzentscheidung treffen und 

311
00:16:50,240 --> 00:16:54,240
am Ende steht quasi die 
Entscheidung delegiere ich das? 

312
00:16:54,720 --> 00:16:58,640
An den echten Service weiter 
also sind meine Checks bei, 

313
00:16:58,800 --> 00:17:03,200
gehen wir mal so von Access 
Control Security Aspekten aus. 

314
00:17:03,440 --> 00:17:07,440
Ich checke zum Beispiel den 
Client und wenn er berechtigt 

315
00:17:07,440 --> 00:17:12,160
ist diesen Service zu verwenden,
leite ich das, delegiere ich das

316
00:17:12,160 --> 00:17:15,040
weiter an den echten Service, 
weil wie du meinst ich diese 

317
00:17:15,040 --> 00:17:18,640
Referenz da drauf halte und dann
kriegt der Client quasi vom 

318
00:17:18,640 --> 00:17:22,319
echten Service auch eine weil 
also eine echte Antwort sage ich

319
00:17:22,319 --> 00:17:24,599
mal und nicht etwas von dem 
Proxy zurückgemeldet. 

320
00:17:24,680 --> 00:17:27,040
Wird, weil das kann ja auch 
sein, es kann ja sein, dass dann

321
00:17:27,040 --> 00:17:30,040
einfach zurückkommt, so ist 
nicht, darfst du nicht, ja und 

322
00:17:30,040 --> 00:17:33,040
du als Client weißt nicht, dass 
der Proxy das entschieden hat, 

323
00:17:33,120 --> 00:17:35,520
sondern kann halt genauso gut 
auch der echte Service 

324
00:17:35,520 --> 00:17:38,840
entschieden haben, aber so 
trenne ich halt diese Ebenen mit

325
00:17:38,840 --> 00:17:41,680
diesem Pattern voneinander und 
mache es vor allem auch 

326
00:17:41,680 --> 00:17:43,920
austauschbar, was ja auch 
wichtig ist, ja. 

327
00:17:44,320 --> 00:17:47,800
Also beispielsweise ich habe 
erstmal nur nen Service, weil so

328
00:17:47,800 --> 00:17:49,920
Access Control keine Rolle 
gespielt hat. 

329
00:17:50,000 --> 00:17:52,440
Dann auf einmal kommen die 
Anforderungen rein und das ist 

330
00:17:52,440 --> 00:17:55,080
ja normales Projektgeschehen sag
ich mal in der 

331
00:17:55,080 --> 00:17:57,200
Softwareentwicklung das auf 
einmal es heißt. 

332
00:17:57,480 --> 00:18:00,080
Ey du, wir müssen jetzt hier 
aber kontrollieren, wer das 

333
00:18:00,080 --> 00:18:03,120
verwendet, welcher Client, wie 
machen wir denn das und dann 

334
00:18:03,120 --> 00:18:06,480
sagt man sich so ha du, ich hab 
die Coding Buddies Folge gehört,

335
00:18:06,760 --> 00:18:09,800
es gibt das Proxy Pattern und 
genau das werden wir jetzt hier 

336
00:18:09,800 --> 00:18:13,360
anwenden, weil wir da quasi 
diese Ebene einbauen. 

337
00:18:13,360 --> 00:18:17,040
Zu entscheiden darf der Client 
das oder nicht und das wäre dann

338
00:18:17,040 --> 00:18:19,680
schon wieder n gutes 
Anwendungsbeispiel sozusagen. 

339
00:18:20,040 --> 00:18:22,560
Ich mein du kommst kommst ja 
relativ schnell auch an den 

340
00:18:22,560 --> 00:18:25,960
Punkt, dass du vielleicht genau 
solche, also ich glaube man hat 

341
00:18:25,960 --> 00:18:28,800
relativ schnell Momente, wo man 
genau das was du geschrieben 

342
00:18:28,800 --> 00:18:32,000
hast, irgendwie in seinem Code 
hat und du kannst es natürlich 

343
00:18:32,000 --> 00:18:34,760
logischerweise wie immer über 
verschiedenste Wege lösen. 

344
00:18:34,760 --> 00:18:37,600
Du kannst ja auch sagen, OK, ich
mach halt, ich hau halt einfach 

345
00:18:37,600 --> 00:18:40,400
ne ne if davor oder was auch 
immer und überprüfe eine 

346
00:18:40,400 --> 00:18:43,760
bestimmte Bedingung, nur dann 
führe ich etwas aus und genau 

347
00:18:43,760 --> 00:18:46,080
das ist jetzt der, also ist ja 
der entscheidende Unterschied. 

348
00:18:46,480 --> 00:18:49,280
Wie möchtest du deine Software 
quasi aufbauen? 

349
00:18:49,280 --> 00:18:52,240
Designen? 
Nimmst du dafür ein Design 

350
00:18:52,240 --> 00:18:56,400
pattern, um es halt eben, ich 
sag mal etwas schöner und halt 

351
00:18:56,400 --> 00:19:02,080
auch ich sag mal wartbarer 
erweiterbarer, du kennst die 

352
00:19:02,080 --> 00:19:08,040
ganzen Buzzwords quasi, also 
kannst du es, wie möchtest du es

353
00:19:08,040 --> 00:19:11,120
implementieren, das ist halt der
der entscheidende Punkt am Ende.

354
00:19:12,080 --> 00:19:14,680
Genau. 
OK, fassen wir noch mal kurz 

355
00:19:14,680 --> 00:19:17,760
zusammen, bevor wir auf so reale
Beispiele kommen, dass wir 

356
00:19:17,760 --> 00:19:21,360
einfach noch mal kurz den Punkt 
haben, was beinhaltet dieses 

357
00:19:21,360 --> 00:19:25,760
Pattern, also die Kernidee haben
wir ja quasi besprochen und noch

358
00:19:25,760 --> 00:19:29,080
mal ganz klar, so als Merksatz 
sag ich mal der für mich auch 

359
00:19:29,080 --> 00:19:32,560
immer wichtig ist, wenn ich an 
dieses Pattern denke, ich habe 

360
00:19:33,200 --> 00:19:37,960
ne Schnittstelle für den Client,
diese wird von 2 Objekten quasi 

361
00:19:37,960 --> 00:19:40,520
implementiert von dem echten 
Service, also von dem echten 

362
00:19:40,520 --> 00:19:44,720
Objekt und von dem Proxy. 
Und was hier ganz klar zu 

363
00:19:44,720 --> 00:19:48,560
differenzieren ist, und das ist 
der Merksatz, der Echte, das 

364
00:19:48,560 --> 00:19:51,920
echte Objekt quasi, beinhaltet 
die Business Logik, diese 

365
00:19:51,920 --> 00:19:54,960
sensiblen Operationen, wenn es 
um Access Control geht. 

366
00:19:55,280 --> 00:19:58,160
Teure Operation werden wir auch 
dazu kommen, ne, wenn es halt 

367
00:19:58,160 --> 00:20:02,000
wirklich aufwendig ist das 
durchzuführen, dann ist n Proxy 

368
00:20:02,000 --> 00:20:04,560
auch sinnvoll zu entscheiden, 
muss das jetzt gemacht werden, 

369
00:20:04,800 --> 00:20:07,520
ja. 
Und der Proxy, wie gesagt 

370
00:20:07,680 --> 00:20:10,800
checkt, ob der Client das darf, 
ob es notwendig ist und wenn ja,

371
00:20:10,800 --> 00:20:13,600
delegiert das dann an das echte 
Objekt um diese Berechnung 

372
00:20:13,600 --> 00:20:17,200
durchzuführen. 
So kann man das so noch mal kurz

373
00:20:17,200 --> 00:20:20,480
und knapp zusammenfassend, so 
sieht das Pad dann aus, aber 

374
00:20:20,480 --> 00:20:23,760
jetzt ist halt die Frage warum 
ja also wir haben so ein paar 

375
00:20:23,760 --> 00:20:27,080
Sachen angeteasert, schon 
Beispiele genannt, aber es gibt 

376
00:20:27,080 --> 00:20:30,960
ja so sage ich mal 
Hauptkategorien wo man denn sich

377
00:20:30,960 --> 00:20:33,760
denkt so. 
OK, das schreit nach dem Proxy 

378
00:20:33,760 --> 00:20:36,480
Pattern. 
Hau mal ein erstes raus so. 

379
00:20:36,720 --> 00:20:40,400
Also wir hatten ja schon so ein 
kleines Beispiel auch genannt, 

380
00:20:40,400 --> 00:20:43,440
also zugriffskontrolle ist ja 
sehr wichtig. 

381
00:20:43,840 --> 00:20:46,240
Bist du zum Beispiel irgendwie 
ein Admin oder in 

382
00:20:46,240 --> 00:20:48,480
Anführungsstrichen nur ein 
einfacher User? 

383
00:20:48,640 --> 00:20:54,080
Da gibt es vielleicht irgendwie 
eine interne API, die irgendwo 

384
00:20:54,080 --> 00:20:58,640
sitzt, wo du aber von. 
Außen, ich sag mal als extern, 

385
00:20:58,640 --> 00:21:00,880
wie auch immer du es nennen 
magst, nicht drauf zugreifen 

386
00:21:00,880 --> 00:21:04,080
kannst. 
Gibt es irgendwelche Services 

387
00:21:04,080 --> 00:21:08,760
die Security relevant sind für 
bestimmte Anwendungen, für 

388
00:21:08,760 --> 00:21:13,920
bestimmte Dinge? 
Also es gibt ja verschiedene 

389
00:21:13,920 --> 00:21:18,640
Möglichkeiten, die du, die du 
irgendwie eventuell hast und ich

390
00:21:18,640 --> 00:21:22,560
finde was was Wichtiges ist halt
eben oder was man ganz oft hat, 

391
00:21:22,560 --> 00:21:25,440
ist halt eben diese diese 
Rollen, diese Rollen. 

392
00:21:25,600 --> 00:21:28,640
Anwendung welche Rolle hast du? 
Darfst du das bestimmte? 

393
00:21:29,600 --> 00:21:32,880
Dieses User Management darfst du
bestimmte Dinge ausführen, je 

394
00:21:32,880 --> 00:21:35,160
nachdem was du für eine Rolle 
beinhaltet. 

395
00:21:35,920 --> 00:21:40,200
Das ist halt ein häufiges, ein 
häufiges Thema, da hast du ja 

396
00:21:40,200 --> 00:21:43,600
zum Beispiel auch sowas wie auch
in der Netzwerkkommunikation 

397
00:21:43,600 --> 00:21:46,640
kennt man ja sowas auch oft zum 
Proxy, der irgendwo dazwischen 

398
00:21:46,640 --> 00:21:50,400
sitzt, der halt eben auch, ich 
sag mal bestimmte Header oder 

399
00:21:50,400 --> 00:21:53,560
bestimmte. 
Ich nenn es jetzt einfach mal 

400
00:21:53,560 --> 00:21:55,080
allgemein Zugriffsrechte 
überprüft. 

401
00:21:55,080 --> 00:21:57,240
Ist es in Ordnung, darfst du 
hier überhaupt drauf zugreifen 

402
00:21:57,240 --> 00:22:00,240
oder nicht und dann 
gegebenenfalls auch wieder 

403
00:22:00,240 --> 00:22:02,960
delegiert weiterleitet zu der 
Seite die du eigentlich 

404
00:22:02,960 --> 00:22:06,400
erreichen möchtest. 
Beispielsweise ja ganz klassisch

405
00:22:06,400 --> 00:22:12,240
proxies ja, da in dem Fall bei 
dem ganzen Thema so Security 

406
00:22:12,240 --> 00:22:14,560
Checks oder so, da hab ich 
irgendwie immer so diese 

407
00:22:14,560 --> 00:22:16,480
Analogie im Kopf, dass ich mir 
das. 

408
00:22:16,720 --> 00:22:18,520
Vorstelle, wie auch so im echten
Leben. 

409
00:22:18,520 --> 00:22:21,200
Wenn du beispielsweise auf einem
Festival gehst oder einen Club 

410
00:22:21,200 --> 00:22:23,440
besuchen möchtest. 
Wie auch immer, dass du 

411
00:22:23,440 --> 00:22:28,000
natürlich das Ziel hast, 
sozusagen dieses Konzert oder 

412
00:22:28,000 --> 00:22:32,480
diesen Abend zu besuchen, diese 
Veranstaltung, ja, und du gehst 

413
00:22:32,480 --> 00:22:36,560
hin und sagst, ich besuche das 
jetzt, das heißt, du kommst an, 

414
00:22:36,800 --> 00:22:41,200
möchtest rein und der Proxy in 
dem Fall ist ja ganz oft, denn 

415
00:22:41,200 --> 00:22:45,280
so eine Art Security oder so 
eine Eingangskontrolle, oder von

416
00:22:45,280 --> 00:22:47,920
mir aus auch ein Drehkreuz wie? 
Jetzt im Skiurlaub ob du n 

417
00:22:47,920 --> 00:22:52,160
Skipass hast oder nicht. 
Ja, aber das ist im Endeffekt da

418
00:22:52,160 --> 00:22:55,440
stell ich mir immer so den Proxy
vor, der dann sagt Nee warte 

419
00:22:55,440 --> 00:22:58,160
mal. 
Also du kannst gerne über mich 

420
00:22:58,240 --> 00:23:02,800
das besuchen, das Festival hier 
ja also kein Thema, aber erstmal

421
00:23:02,800 --> 00:23:05,600
möchte ich bitte sehen ob du n 
gültiges Ticket hast in 

422
00:23:05,680 --> 00:23:08,360
gegebenenfalls möchte ich auch 
noch prüfen ob du alt genug 

423
00:23:08,360 --> 00:23:11,240
bist. 
Ja, und das sind so im Prinzip 

424
00:23:11,240 --> 00:23:14,960
diese, diese klassische Security
Proxy Anwendungsfall, dass du 

425
00:23:14,960 --> 00:23:18,320
sagst ich geh da jetzt hin und 
ich ruf sozusagen besuche 

426
00:23:18,320 --> 00:23:22,240
Festival auf. 
Und werd dann erstmal gecheckt, 

427
00:23:22,240 --> 00:23:24,640
aber am Ende rufe ich nur 
besuche Festival auf und der 

428
00:23:24,640 --> 00:23:27,520
Security lässt mich durch und 
ich kann denn das Konzert 

429
00:23:27,520 --> 00:23:31,120
beispielsweise besuchen und ich 
finde diese Analogie sich 

430
00:23:31,120 --> 00:23:34,320
vorzustellen wie das dazwischen 
geschaltet ist zwischen dem 

431
00:23:34,320 --> 00:23:38,080
echten Festival mich als 
Kleinbesucher diese 

432
00:23:38,080 --> 00:23:41,640
Schnittstelle Proxy, dazwischen 
der den weiterleitet und sagt, 

433
00:23:41,640 --> 00:23:45,280
OK darfst durch oder nee geh mal
besser nach Hause, so wirst du 

434
00:23:45,280 --> 00:23:48,320
hier nicht reinkommen, weißt du,
und das finde ich ist immer so 

435
00:23:48,320 --> 00:23:51,600
ne ganz coole Analogie und. 
Der Proxy vom Berghain ne. 

436
00:23:52,480 --> 00:23:54,800
Ja, genau, der ist ein besonders
strenger Proxy. 

437
00:23:58,480 --> 00:24:03,560
Wer kennt ihn nicht genau. 
Dann haben wir natürlich auch 

438
00:24:03,560 --> 00:24:05,440
schon mal so ein bisschen 
angeteasert, dass wir gesagt 

439
00:24:05,440 --> 00:24:07,800
haben, OK, es gibt ja aber auch 
zum Beispiel Operationen, die 

440
00:24:07,800 --> 00:24:11,120
sehr teuer sind, ne 
datenbankzugriffe, aufwändige 

441
00:24:11,120 --> 00:24:14,160
Datenbankzugriffe, 
Netzwerkzugriffe hattest du 

442
00:24:14,160 --> 00:24:17,360
genannt, aber natürlich auch 
sowas wie. 

443
00:24:17,680 --> 00:24:22,080
Auf großen Daten arbeiten ja 
die, wo das wirklich aufwendig 

444
00:24:22,080 --> 00:24:25,520
ist, die Daten einzulesen, zu 
verarbeiten, dass man sich 

445
00:24:25,520 --> 00:24:29,840
denkt, Boah, jedes Mal das ganze
oder oder oder. 

446
00:24:29,840 --> 00:24:33,360
So brauchst du das wirklich. 
Also ganz ehrlich, ich kann es 

447
00:24:33,360 --> 00:24:37,040
machen, ich kann es machen, aber
bist du dir sicher, dass du das 

448
00:24:37,040 --> 00:24:39,640
brauchst, weil das das kostet 
mich Echtzeit so ne. 

449
00:24:40,400 --> 00:24:43,200
Das ist ja das, was dein System 
sich denkt in dem Fall, wenn der

450
00:24:43,200 --> 00:24:45,400
Client sagt, Ach weißt du was, 
ich weiß nicht ob ich das 

451
00:24:45,400 --> 00:24:47,600
brauche, aber les doch mal die 
ganze Datenbank aus hier bitte, 

452
00:24:47,760 --> 00:24:49,840
vielleicht sind da ja Sachen 
drin die mich interessiert, so 

453
00:24:49,840 --> 00:24:55,440
was genau und das ist ja auch 
oft so dieses lazy loading was 

454
00:24:55,440 --> 00:24:59,440
man auch sag ich mal in der 
Softwareentwicklungswelt kennt 

455
00:24:59,760 --> 00:25:03,760
und im Endeffekt hast du dann 
einen Proxy der sagt. 

456
00:25:04,480 --> 00:25:07,880
Okay. 
Ich baue das aber erst, wenn du 

457
00:25:07,880 --> 00:25:10,560
es wirklich brauchst. 
Beweise mir, dass du das 

458
00:25:10,560 --> 00:25:12,080
brauchst und dann bekommst du 
es. 

459
00:25:12,400 --> 00:25:16,320
Oder ich lese die Daten aus, 
aber erst wenn du sie. 

460
00:25:16,320 --> 00:25:20,000
Wirklich an der Stelle verwenden
möchtest vorher nicht. 

461
00:25:20,160 --> 00:25:24,000
Das ist ja, wenn du zum Beispiel
auf einer auf einer Website bist

462
00:25:24,080 --> 00:25:27,760
und du hast irgendwo am Ende 
deiner Website zum Beispiel 

463
00:25:27,760 --> 00:25:31,120
irgendwie ein Bild, aber du 
siehst dieses Bild aber nicht 

464
00:25:31,120 --> 00:25:33,600
an, dann musst du es ja noch 
nicht laden, du musst ja nur das

465
00:25:33,600 --> 00:25:36,400
Laden, was du wirklich siehst. 
Dann kannst du natürlich in dem 

466
00:25:36,400 --> 00:25:40,640
Moment sagen, OK, ich mach n 
lazy load ne, also ich lade es 

467
00:25:40,640 --> 00:25:44,120
erst, also lazy ne für alle. 
Falls jetzt irgendjemand sagt 

468
00:25:44,120 --> 00:25:48,000
ich weiß nicht was lazy jetzt 
bedeutet, also ne faul, also du 

469
00:25:48,000 --> 00:25:50,440
du lädst halt, du machst halt 
nur das nötigste, ne du bist 

470
00:25:50,440 --> 00:25:52,920
faul, du sagst OK ich lade nur 
dann wenn ich es wirklich 

471
00:25:52,920 --> 00:25:56,640
brauche, das war ja damals 
einfach auch n Riesenthema ja so

472
00:25:56,640 --> 00:25:59,920
sag ich mal die ersten Websites 
die mit Bildern gearbeitet haben

473
00:25:59,920 --> 00:26:01,720
ne und du hattest einfach auch 
gar nicht. 

474
00:26:02,160 --> 00:26:07,040
Diese Netzwerkanbindung ja, dass
du so viel so es klingt halt aus

475
00:26:07,040 --> 00:26:10,800
heutiger Sicht witzig, aber so 
viel Daten ja so ne Datengröße 

476
00:26:10,800 --> 00:26:14,400
einfach downloaden konntest. 
Und da wurde viel mit Lazy 

477
00:26:14,400 --> 00:26:17,840
Loading auch gearbeitet, damit 
die Seite sich nicht minutenlang

478
00:26:17,840 --> 00:26:21,680
aufbaut, ne, dass du halt 
performancegewinn hast, dass du 

479
00:26:21,840 --> 00:26:25,000
so n bisschen was dem Client 
schon anbietest, womit er 

480
00:26:25,000 --> 00:26:28,720
erstmal arbeiten kann und du im 
Hintergrund quasi immer 

481
00:26:28,720 --> 00:26:31,600
entscheidest. 
Jetzt könnte es gebrauchen. 

482
00:26:31,600 --> 00:26:34,560
Jetzt braucht es und wieder ein 
bisschen mehr, aber nicht alles 

483
00:26:34,560 --> 00:26:36,480
auf einmal. 
Weil du kannst natürlich sagen, 

484
00:26:36,480 --> 00:26:38,560
ja gut, wart halt 5 Minuten, 
aber dann hast du alles. 

485
00:26:39,200 --> 00:26:41,680
Das ist natürlich so von der 
User Experience eine absolute 

486
00:26:41,680 --> 00:26:43,520
Katastrophe. 
Ja und das war damals halt ein 

487
00:26:43,520 --> 00:26:47,120
Riesenthema und deswegen gibt es
halt diese Konzepte um da noch 

488
00:26:47,120 --> 00:26:49,040
mal so einen Kleinen. 
Rückblick zu geben. 

489
00:26:49,360 --> 00:26:51,640
Also ich finde, eigentlich 
sollte man an der Stelle eine 

490
00:26:51,640 --> 00:26:54,640
bessere Netzwerkbandbreite zur 
Verfügung stellen und dann geht 

491
00:26:54,640 --> 00:26:57,840
es. 
Ja, das das, das war die Antwort

492
00:26:57,840 --> 00:27:02,640
damals mit dem Modem ne und? 
Zieh doch einfach mehr Daten. 

493
00:27:03,040 --> 00:27:07,360
Ja, weil damals haben es nämlich
seit nimmer lange geladen, aber 

494
00:27:07,360 --> 00:27:12,080
ich finde das beste Beispiel für
lazy loading in Real Life ja ist

495
00:27:12,400 --> 00:27:16,320
wenn du ein Restaurant gehst ne.
Du setzt dich hin und bestellst 

496
00:27:16,320 --> 00:27:21,600
und wartest auf dein Essen und 
du hast ja quasi erstmal noch 

497
00:27:21,600 --> 00:27:24,400
nicht dein Essen. 
Aber dann kommt der Proxy und 

498
00:27:24,400 --> 00:27:27,480
sagt, Na, Pass auf, du kriegst 
schon mal n kleinen Happen, 

499
00:27:27,480 --> 00:27:30,680
nämlich das kleine Probierbrot. 
Am Anfang weißt du ja, das 

500
00:27:30,680 --> 00:27:33,840
heißt, du kriegst schon mal n. 
Bisschen, aber noch nicht dein 

501
00:27:33,840 --> 00:27:36,400
richtiges Essen. 
Ja, aber das passt auch gut ne, 

502
00:27:36,400 --> 00:27:39,680
weil du kommst als klein total 
ausgehungert da an und denkst 

503
00:27:39,680 --> 00:27:41,840
dir oh ey, ich hab jetzt richtig
Bock was zu essen ich hab 

504
00:27:41,840 --> 00:27:44,560
wirklich Hunger. 
Bestellst was willst natürlich 

505
00:27:44,560 --> 00:27:47,280
noch das Essen, was am längsten 
in der Zubereitung dauert, wo 

506
00:27:47,280 --> 00:27:50,400
der Kellner schon sagt, ja das 
können wir machen, kann aber so 

507
00:27:50,400 --> 00:27:52,960
ne halbe Stunde dauern und du 
denkst auch Boah bitte nicht, 

508
00:27:52,960 --> 00:27:54,680
aber ich will es haben, ich hab 
es bestellt ich werd es 

509
00:27:54,680 --> 00:27:57,000
durchziehen, ich werd es nicht 
überleben aber ich will wenn ich

510
00:27:57,000 --> 00:28:00,800
das noch essen kann genau das 
Essen und dann kommt da der 

511
00:28:00,800 --> 00:28:03,600
Proxy und gibt dir n Brotkorb 
mit Dips und du denkst dir boah.

512
00:28:04,240 --> 00:28:06,720
Damit kann ich es überbrücken. 
Weißt du, das ist ja genau das 

513
00:28:06,720 --> 00:28:09,120
gleiche wie mit der Website, du 
stellst den Halt erstmal so ein 

514
00:28:09,120 --> 00:28:12,320
bisschen zufrieden bevor, denn 
so das eigentliche Produkt 

515
00:28:12,320 --> 00:28:15,560
kommt, was halt aufwendig in der
Herstellung ist und dauert, das 

516
00:28:15,680 --> 00:28:16,960
ist eigentlich auch eine sehr 
geile. 

517
00:28:16,960 --> 00:28:21,680
Analogie finde ich auf jeden 
Fall. 

518
00:28:21,760 --> 00:28:23,920
Ich weiß, ich muss auf jeden 
Fall sehr schmunzeln, als ich 

519
00:28:23,920 --> 00:28:27,560
das mal gehört habe, merke ich 
mir auf jeden Fall finde ich 

520
00:28:27,560 --> 00:28:31,600
richtig gut, das beschreibt doch
dieses ganze lazy loading ganz 

521
00:28:31,600 --> 00:28:32,720
gut. 
Genau. 

522
00:28:32,800 --> 00:28:34,640
Also wir hatten jetzt Security 
Checks oder so 

523
00:28:34,640 --> 00:28:36,240
zugriffskontrollen sage ich 
jetzt mal. 

524
00:28:36,240 --> 00:28:39,600
Dann hatten wir die dieses Lazy 
loading. 

525
00:28:39,600 --> 00:28:44,800
Was haben wir noch, na was mir 
da noch einfällt ist halt immer 

526
00:28:45,440 --> 00:28:48,320
was ich vorhin so ein bisschen 
angerissen habe so so 

527
00:28:48,320 --> 00:28:52,000
Zusatzfunktionen ja also die 
jetzt nicht irgendwas Security 

528
00:28:52,000 --> 00:28:55,720
mäßiges sind oder irgendwelche 
Performance gewinne ja gut 

529
00:28:55,720 --> 00:28:58,720
Performance spielt da auch 
oftmals ein bisschen rein, aber 

530
00:28:58,720 --> 00:29:02,480
wenn ich einfach quasi. 
Um die eigentliche Business 

531
00:29:02,480 --> 00:29:05,520
Logik, die ja im echten Objekt 
enthalten ist, mit meinem Proxy 

532
00:29:05,520 --> 00:29:09,760
noch Zusatzfunktion, sei es auch
was einfaches wie Logging, wäre 

533
00:29:09,760 --> 00:29:13,680
ein Beispiel ne, aber ich denke 
da eigentlich eher an sowas wie 

534
00:29:13,760 --> 00:29:16,680
Caching, deswegen hatte ich 
dieses Videobeispiel gemacht. 

535
00:29:16,680 --> 00:29:23,600
Caching ist da oft ein Thema, 
auch so Remote Proxys ja, also 

536
00:29:23,600 --> 00:29:28,320
da zum Beispiel bei Remote 
Proxys denke ich ganz oft an so 

537
00:29:28,320 --> 00:29:32,720
Kreditkarte zum Beispiel ja. 
Ne Kreditkarte ist auch n super 

538
00:29:32,720 --> 00:29:36,080
Proxy Beispiel weil das kennt 
jeder oder oder was heißt 

539
00:29:36,080 --> 00:29:39,760
Kreditkarte EC Karte auch von 
mir aus ja also gehen wir mal in

540
00:29:39,760 --> 00:29:43,840
die Welt des Geldtransfers ne 
und ich geh jetzt in den Laden 

541
00:29:43,840 --> 00:29:46,480
und ich hab halt kein Bock mein 
Geld mit mir rumzuschleppen. 

542
00:29:46,880 --> 00:29:49,840
Das ist ja auch so n bisschen 
die kernfuhr Aussage dahinter. 

543
00:29:49,920 --> 00:29:53,360
Ich will nicht zur Bank gehen, 
mir mein Geld holen um dann 

544
00:29:53,360 --> 00:29:56,880
immer mit Geld in der Tasche 
rumzurennen um Sachen zu kaufen 

545
00:29:57,120 --> 00:30:00,720
ja so n bisschen OK die ganze 
Zeit ich weiß nicht wie es bei 

546
00:30:00,720 --> 00:30:05,360
dir ist, aber ich bin schon Fan 
davon nicht immer Bargeld so 

547
00:30:05,360 --> 00:30:08,160
mega rumzuschleppen das nervt 
mich auch immer zum Automaten zu

548
00:30:08,160 --> 00:30:12,400
gehen und da kommt ja so ne 
Karte super gelegen weil das am 

549
00:30:12,400 --> 00:30:15,040
Ende nur nen Proxy ist zwischen 
dir. 

550
00:30:15,360 --> 00:30:21,720
Als Käufer und sozusagen der 
eigentlichen Geldtransaktion mit

551
00:30:21,720 --> 00:30:25,680
dem Verkäufer, weil es wirkt, 
und das ist jetzt so, dieser 

552
00:30:25,680 --> 00:30:29,640
Remote Proxy dahinter. 
Es wirkt natürlich im echten 

553
00:30:29,640 --> 00:30:32,720
Leben total lokal. 
Ne weil ich hab ne Karte in der 

554
00:30:32,720 --> 00:30:35,040
Hand, ich hab jetzt zwar keine 
Geldscheine, aber ich hab ne 

555
00:30:35,040 --> 00:30:38,440
Karte in der Hand und diese 
Karte lege ich jetzt da auf sein

556
00:30:38,440 --> 00:30:42,880
Gerät und die sagt. 
Bestätigt, bezahlt und er sagt, 

557
00:30:42,880 --> 00:30:44,560
Hey, danke, dass du bezahlt 
hast. 

558
00:30:44,560 --> 00:30:48,040
Hier hast du dein Produkt, das 
wirkt wieso n lokale wie ne 

559
00:30:48,040 --> 00:30:52,520
lokale Transaktion ist ja aber 
am Ende Remote, weil kein 

560
00:30:52,520 --> 00:30:56,080
Netzwerk, keine Transaktion, ja 
wer kennt das nicht in Gebieten 

561
00:30:56,160 --> 00:30:59,160
wo einfach der Empfang schlecht 
ist und der sagt du sorry meine 

562
00:30:59,160 --> 00:31:00,960
Gerät spinnt schon wieder 
kleinen Moment. 

563
00:31:01,040 --> 00:31:02,520
Kannst du bitte nach oben 
kommen? 

564
00:31:02,520 --> 00:31:07,920
Nur da können Sie zahlen, ja. 
Und das ist ja so Klassiker dann

565
00:31:07,920 --> 00:31:10,600
am Ende ne, das ist halt wie 
eine lokale Transaktion, wirkt 

566
00:31:10,600 --> 00:31:14,000
aber am Ende einen Remote 
Prozess ist und diese Karte an 

567
00:31:14,000 --> 00:31:19,280
sich das nur als Proxy triggert 
am Ende und an die eigentlichen,

568
00:31:19,280 --> 00:31:21,960
an den eigentlichen 
Bezahlvorgang weiterleitet 

569
00:31:21,960 --> 00:31:25,040
sozusagen, das ist halt auch 
noch ein klassisches Beispiel, 

570
00:31:25,760 --> 00:31:29,680
wo denn so Proxys Sinn machen. 
Definitiv finde ich ein sehr, 

571
00:31:29,680 --> 00:31:32,640
sehr gutes Beispiel. 
Bei Remote Proxy muss ich mal. 

572
00:31:32,640 --> 00:31:36,240
Ich glaube das war auch so. 
Weiß nicht in der in der Uni 

573
00:31:36,240 --> 00:31:38,920
oder so so richtig richtig 
schlechtes Beispiel mal gewesen 

574
00:31:38,920 --> 00:31:41,840
ne du willst ne Licht anmachen, 
ja drückst auf den Schalter aber

575
00:31:41,840 --> 00:31:44,560
der das Licht geht irgendwo ganz
woanders an und denkst dir so 

576
00:31:44,560 --> 00:31:46,480
Wow sehr weit hergeholt dieses 
Beispiel. 

577
00:31:46,560 --> 00:31:51,520
Ja krass, wer hat das verkabelt?
Halten wir uns doch lieber an 

578
00:31:51,520 --> 00:31:53,520
die Kreditkarte oder an die EC 
Karte. 

579
00:31:53,520 --> 00:31:55,640
Das find ich sehr gut. 
Ja genau das sind im Prinzip so 

580
00:31:55,640 --> 00:31:58,320
die 3 großen Anwendungsfälle, 
ne. 

581
00:31:58,320 --> 00:32:01,600
Also drittens sagen wir mal so, 
man kann das natürlich auch 

582
00:32:01,600 --> 00:32:04,920
unterteilen, dass du sagst 
Caching ist einer Remote Proxy 

583
00:32:04,920 --> 00:32:07,080
ist einer, dass diese 
Zusatzfunktion haben wir jetzt 

584
00:32:07,080 --> 00:32:09,200
mal als dritten Punkt ja 
zusammengefasst. 

585
00:32:10,720 --> 00:32:13,440
Ganz kurz, du hast ja gerade 
gesagt, sowas wie. 

586
00:32:14,560 --> 00:32:18,120
Zusatzverhalten einbauen ne, 
jetzt zum Beispiel mit so einem 

587
00:32:18,120 --> 00:32:22,080
Remote Proxy oder mit Caching 
oder so ne wenn ich jetzt wenn 

588
00:32:22,080 --> 00:32:25,120
ich zusatzverhalten höre ne, 
dann könnte man ja vielleicht 

589
00:32:25,120 --> 00:32:30,240
irgendwie auch denken so okay 
warte mal decorator dekoriert 

590
00:32:30,640 --> 00:32:36,160
mit etwas mehr, aber was ist 
denn jetzt vielleicht zu der? 

591
00:32:36,320 --> 00:32:38,680
Also wie kann könnte man das 
denn jetzt zum Beispiel von weil

592
00:32:38,680 --> 00:32:41,120
wir ja auch über Decorator 
gesprochen hatten, davon 

593
00:32:41,120 --> 00:32:45,120
abgrenzen. 
Das ist ne gute Frage, weil das 

594
00:32:45,120 --> 00:32:49,120
da unterscheiden sich ja jetzt 
die Pattern dann in einer Sache.

595
00:32:49,440 --> 00:32:53,760
Also ja n Decorator ist auch 
immer noch n bisschen mehr ne, 

596
00:32:53,920 --> 00:32:57,360
also wir hatten ja gesagt wir 
haben ne Funktionalität, wir 

597
00:32:57,360 --> 00:32:59,840
Kapseln immer noch mehr 
drumherum und immer mehr und da 

598
00:32:59,840 --> 00:33:03,440
hatten wir ja auch diese 
Analogie von von von der 

599
00:33:03,440 --> 00:33:06,400
Kleidung ne immer noch ne Jacke 
drüber oder immer mehr den 

600
00:33:06,400 --> 00:33:08,600
Tannenbaum schmücken oder wie 
auch immer was man dann nehmen 

601
00:33:08,600 --> 00:33:13,520
möchte als Analogie der 
Unterschied ist wann wenn ich 

602
00:33:13,520 --> 00:33:16,160
hier mit einem Proxy 
zusatzverhalten implementiere 

603
00:33:16,480 --> 00:33:20,960
versus ich mache das mit einem 
dekorator Pattern ist und das 

604
00:33:20,960 --> 00:33:24,320
ist jetzt genau der Punkt, dass 
der Client darüber entscheidet. 

605
00:33:24,880 --> 00:33:29,520
Der Client sagt so und so möchte
ich mein Objekt dekorieren. 

606
00:33:29,520 --> 00:33:32,920
Ich als Client schmücke den 
Tannenbaum, ich als Client 

607
00:33:32,920 --> 00:33:35,520
entscheide, wieviel Jacken ich 
anziehe und immer noch eine 

608
00:33:35,520 --> 00:33:38,560
drüber, welche Jacke ich 
anziehe, in welcher Reihenfolge 

609
00:33:38,560 --> 00:33:41,200
ich die Jacke anziehe, in 
welcher Reihenfolge ich die 

610
00:33:41,200 --> 00:33:42,960
Christbaumkugeln an dem Baum 
hänge. 

611
00:33:43,520 --> 00:33:45,280
Völlig egal. 
Aber das sind Client 

612
00:33:45,280 --> 00:33:47,480
Entscheidungen. 
Ja, also ich biete dem Client 

613
00:33:47,480 --> 00:33:49,200
die Möglichkeit darüber zu 
entscheiden. 

614
00:33:49,520 --> 00:33:54,560
Beim Proxy Pattern hatten wir ja
gesagt, es ist exakt die gleiche

615
00:33:54,560 --> 00:33:57,000
Schnittstelle und der Client 
weiß nicht ob ein Proxy 

616
00:33:57,000 --> 00:34:00,200
dazwischen hängt oder nicht und 
das ist der Unterschied, er kann

617
00:34:00,200 --> 00:34:03,120
nicht darüber, also der Client 
ist nicht in der Lage zu sagen 

618
00:34:03,200 --> 00:34:06,840
Festivalbeispiel noch mal 
Security geh mal schön schritt 

619
00:34:06,840 --> 00:34:10,560
zur Seite, ich gehe da nämlich 
jetzt einfach durch, ja weil ich

620
00:34:10,560 --> 00:34:12,960
will nicht kontrolliert werden, 
ich als client sage ich. 

621
00:34:14,320 --> 00:34:17,199
Ich als klein sage, ich geh aufs
Festival und will nicht 

622
00:34:17,199 --> 00:34:19,560
kontrolliert werden. 
Dann sagt der Proxy ja nicht, 

623
00:34:19,560 --> 00:34:22,000
ach. 
So, ja Ach so o. 

624
00:34:22,000 --> 00:34:24,800
K gut, dann dann geh durch. 
Ich kontrollier den nächsten, 

625
00:34:24,800 --> 00:34:26,639
weil der weiß nicht, dass er das
nicht machen muss. 

626
00:34:27,600 --> 00:34:29,239
Ich dekorier dir deine 
Entscheidung. 

627
00:34:29,239 --> 00:34:30,679
Ich darf mit meinem Bier da 
rein. 

628
00:34:30,760 --> 00:34:32,800
Genau. 
Ganz genau. 

629
00:34:33,320 --> 00:34:36,480
Das wäre nämlich das decorator 
Pattern zu sagen, ich darf rein,

630
00:34:36,480 --> 00:34:40,000
ich darf mein Getränk mitnehmen 
und meine Kumpels ohne Karte 

631
00:34:40,000 --> 00:34:42,880
kommen auch noch mit rein und du
gibst mir noch 50€ 

632
00:34:42,880 --> 00:34:46,320
Getränkegutschein obendrauf. 
So, das wäre dann der 

633
00:34:46,320 --> 00:34:49,199
Unterschied, warum nimmt man 
dann nicht einfach das decorator

634
00:34:49,199 --> 00:34:52,920
Pattern klingt viel besser, das 
klingt erstmal besser für die 

635
00:34:52,920 --> 00:34:55,080
Software wäre es ja in dem Fall 
für die Software des Festivals 

636
00:34:55,080 --> 00:35:00,240
eher nicht so gut, touché. 
Ja genau, also ähnliche 

637
00:35:00,240 --> 00:35:02,800
Struktur. 
Beide delegieren weiter am Ende,

638
00:35:02,800 --> 00:35:05,840
aber es ist halt dieser 
Kernunterschied, dass du sagst, 

639
00:35:06,080 --> 00:35:09,440
klein driven sage ich mal oder 
klein hat kein Mitspracherecht. 

640
00:35:12,080 --> 00:35:14,440
Finde ich gut. 
Jetzt haben wir natürlich auch 

641
00:35:14,440 --> 00:35:16,960
das Adapterpad dann auch schon 
angemerkt. 

642
00:35:17,280 --> 00:35:19,840
Der Vollständigkeit halber magst
du vielleicht das mal 

643
00:35:19,840 --> 00:35:26,640
voneinander separieren. 
Genau also Adapter, also ein 

644
00:35:26,640 --> 00:35:29,840
Adapter ist ja im Endeffekt 
dafür, darum wie der Name ja 

645
00:35:29,840 --> 00:35:35,120
schon sagt, etwas zu adaptieren.
Das heißt 2 Dinge zu verbinden, 

646
00:35:35,120 --> 00:35:40,160
die nicht unbedingt füreinander 
ursprünglich geschaffen waren, 

647
00:35:41,680 --> 00:35:45,640
das heißt, du hast irgendwie auf
der einen Seite etwas, was sage 

648
00:35:45,640 --> 00:35:49,280
ich jetzt mal, sagen wir mal, du
kriegst irgendwie Daten rein, 

649
00:35:49,360 --> 00:35:53,440
die irgendwie da. 
Da sind, wie sie sind und auf 

650
00:35:53,440 --> 00:35:55,400
der anderen Seite können diese 
Daten aber gar nicht verarbeitet

651
00:35:55,400 --> 00:35:56,560
werden. 
Das heißt, du hast irgendwo eine

652
00:35:56,560 --> 00:36:01,480
Stelle, die dann am Ende dafür 
sorgt, dass diese Daten, ich sag

653
00:36:01,480 --> 00:36:04,680
mal, übersetzt werden für die 
andere Partei, dass sie das auch

654
00:36:04,680 --> 00:36:13,720
versteht, und das heißt das, was
der Client hat, also erwartet, 

655
00:36:13,720 --> 00:36:17,120
der die Gegenseite erwartet 
etwas anderes als das, was der 

656
00:36:17,120 --> 00:36:19,600
Client hat, aber es soll quasi 
gültig sein. 

657
00:36:19,600 --> 00:36:24,480
Weißt du, ich meine und das. 
Beim Proxy ist es ja halt eben, 

658
00:36:24,960 --> 00:36:29,280
ich sag mal anders ne, also wie 
du ja auch schon gesagt hast, 

659
00:36:29,280 --> 00:36:33,040
das Interface worüber du 
kommunizierst bleibt das 

660
00:36:33,040 --> 00:36:36,320
gleiche, also der Client dem 
Client ist es eigentlich relativ

661
00:36:36,320 --> 00:36:39,680
egal. 
Ja also mit mit wem gesprochen 

662
00:36:39,680 --> 00:36:43,560
wird, ob jetzt mit dem also du 
hast eine feste Anlaufstelle sag

663
00:36:43,560 --> 00:36:47,120
ich jetzt mal ne also. 
Mit der du kommunizierst. 

664
00:36:47,120 --> 00:36:49,520
Und Du hast ein Interface dafür.
Du weißt aber nicht, ob du jetzt

665
00:36:49,520 --> 00:36:51,440
mit einem echten Objekt, mit 
einem Proxy oder wie auch immer 

666
00:36:51,440 --> 00:36:53,760
sprichst. 
Bei einem Adapter ist dir 

667
00:36:53,760 --> 00:36:55,760
relativ klar, mit wem du 
sprichst. 

668
00:36:56,080 --> 00:36:58,400
Die Frage also ne was dahinter 
steht du. 

669
00:36:58,400 --> 00:37:01,640
Du musst halt nur wissen welchen
Adapter nehm ich um mit der mit 

670
00:37:01,640 --> 00:37:04,480
dem mit dem Ich sprechen möchte 
quasi zu kommunizieren. 

671
00:37:04,720 --> 00:37:11,760
Das heißt beim also beim Proxy 
weißt du ich hab ein festes Ziel

672
00:37:11,760 --> 00:37:14,640
wo ich hin möchte was ich gerne 
ansprechen möchte. 

673
00:37:15,080 --> 00:37:17,520
Aber was mit wem ich spreche, 
ist mir eigentlich egal. 

674
00:37:18,080 --> 00:37:21,680
Wenn ich jetzt aber den Adapter 
nehme, dann weiß ich, dass ich 

675
00:37:21,680 --> 00:37:26,320
vielleicht mit unterschiedlichen
Akteuren sprechen möchte. 

676
00:37:26,880 --> 00:37:31,200
Aber ich brauche eine andere 
Übersetzungssoftware, um halt 

677
00:37:31,200 --> 00:37:34,320
eben an die entsprechenden 
Akteure zu kommen oder sie zu 

678
00:37:34,320 --> 00:37:38,560
erreichen, sagen wir mal so. 
Und das das letzte was du jetzt 

679
00:37:38,560 --> 00:37:41,360
gesagt hast, ist eigentlich 
wirklich so der Kernunterschied.

680
00:37:41,720 --> 00:37:44,240
Dass ich mit dem Adapter Pattern
natürlich das Ziel verfolge, 

681
00:37:44,240 --> 00:37:48,840
Kompatibilität zu schaffen. 
Ja, also dass ich Sachen passend

682
00:37:48,840 --> 00:37:53,120
zueinander mache und Proxy 
Pattern ja eher den Einsatz hat,

683
00:37:53,120 --> 00:37:57,520
Sachen kontrolliert zu machen. 
Ja, also mein Ziel ist es ja, 

684
00:37:57,520 --> 00:38:00,160
Sachen zu kontrollieren und 
nicht einfach nur zu sagen, ihr 

685
00:38:00,160 --> 00:38:03,440
passt OK dann los, ja, das wäre 
ja. 

686
00:38:05,200 --> 00:38:07,360
Genau das Beispiel. 
So ne zum Beispiel jetzt noch 

687
00:38:07,360 --> 00:38:09,680
mal das Festival. 
Ne, da ist ja der Sinn ne 

688
00:38:09,680 --> 00:38:12,960
Kontrolle einzubauen und nicht 
zu sagen OK ihr lauft alle in 

689
00:38:12,960 --> 00:38:15,840
dieser Schlange, ihr passt alle 
in diese Schlange rein in der in

690
00:38:15,840 --> 00:38:18,520
die Warteschlange, also dann gut
dann geht durch solange ihr in 

691
00:38:18,520 --> 00:38:23,280
dieser Schlange seid sozusagen 
ne und das das ist halt auch so 

692
00:38:23,280 --> 00:38:26,080
n entscheidender Unterschied 
dabei also du verfolgst n ganz 

693
00:38:26,080 --> 00:38:28,480
anderes Ziel. 
Während man wie gesagt beim 

694
00:38:28,480 --> 00:38:31,200
Adapter, wie wir meinten, immer 
an diese Kompatibilität denkt, 

695
00:38:31,200 --> 00:38:34,160
ne, da spielt auch Legacy dann 
ganz viel ne Rolle. 

696
00:38:34,160 --> 00:38:36,520
Ne Oh Mann ey, jetzt müssen wir 
irgendwie so n altsystem da noch

697
00:38:36,520 --> 00:38:38,960
anbinden, die Schnittstelle 
passt doch eigentlich gar nicht 

698
00:38:38,960 --> 00:38:42,000
mehr na ja mach n Adapter damit 
die Schnittstelle wieder passt. 

699
00:38:42,240 --> 00:38:44,320
Genau, ist ja ne ganz andere 
Zielsetzung, ne. 

700
00:38:44,640 --> 00:38:50,560
Richtig. 
Ja, trotzdem hat jedes Pattern. 

701
00:38:51,360 --> 00:38:54,000
Ja, immer so vor und Nachteile 
ne also wir wir haben es ja 

702
00:38:54,000 --> 00:38:57,280
jetzt sag ich mal als sehr 
mächtig betitelt, haben auch 

703
00:38:57,280 --> 00:39:00,640
Vorteile und Anwendung genannt, 
aber lass mal noch mal einmal 

704
00:39:00,640 --> 00:39:04,720
zusammenfassen, ich finde sowas 
ist immer wichtig, es hat ja 

705
00:39:04,720 --> 00:39:08,480
immer ne Kehrseite der der diese
einpattern Medaille wie man so 

706
00:39:08,480 --> 00:39:12,960
schön sagt und es gibt also auch
Nachteile also lass noch mal 

707
00:39:12,960 --> 00:39:16,160
schauen was sind so die Vorteile
und welche Nachteile stehen da 

708
00:39:16,160 --> 00:39:17,440
gegenüber? 
Ja also. 

709
00:39:18,320 --> 00:39:20,000
Ich mein Nachteile ist 
eigentlich. 

710
00:39:20,560 --> 00:39:23,360
Ich finde, es ist halt immer so 
ein Ding, wie ich schon meinte, 

711
00:39:23,360 --> 00:39:25,880
so, du kannst alles mögliche 
programmieren, wie du es gerne 

712
00:39:25,880 --> 00:39:28,160
möchtest. 
Du kannst es halt, brauchst kein

713
00:39:28,160 --> 00:39:32,680
Proxy, wenn du kein Proxy haben 
möchtest oder vielleicht nicht 

714
00:39:32,680 --> 00:39:36,000
weiß, dass es einen gibt, weil 
du im Endeffekt ja alles einfach

715
00:39:36,000 --> 00:39:38,800
in eine Klasse ballern kannst. 
Bedeutet aber gleichzeitig auch,

716
00:39:38,800 --> 00:39:41,680
dass du logischerweise der 
Nachteil, den du eigentlich 

717
00:39:41,680 --> 00:39:45,640
immer in irgendeinem Pattern. 
Generell hast ist du hast 

718
00:39:45,640 --> 00:39:47,560
irgendwie ein Overhead, du 
brauchst mehr Struktur, du 

719
00:39:47,560 --> 00:39:50,800
brauchst mehr Klassen, du hast 
irgendwie eine gewisse Art von 

720
00:39:50,800 --> 00:39:52,960
Abstraktion, weil du da 
logischerweise irgendwie ein 

721
00:39:52,960 --> 00:39:56,800
Interface benötigt, was bei 
eigentlich gefühlt so gut wie 

722
00:39:56,800 --> 00:40:01,040
allen oder bei sehr sehr vielen 
Pattern halt einfach der Fall 

723
00:40:01,040 --> 00:40:03,600
ist. 
Und es ist natürlich auch das 

724
00:40:03,600 --> 00:40:06,560
Debugging ist auch etwas 
schwieriger oder kann 

725
00:40:06,560 --> 00:40:07,640
schwieriger sein. 
Ich weiß nicht, ob das 

726
00:40:07,640 --> 00:40:10,480
irgendjemand mal passiert ist, 
aber es ist total geil, wenn du 

727
00:40:10,480 --> 00:40:13,360
irgendwas. 
Debuggst und dann auf einmal ist

728
00:40:13,360 --> 00:40:15,640
zum Beispiel bei Weiß nicht, 
sagen wir mal bei Java ne, da 

729
00:40:15,640 --> 00:40:17,760
haben wir im Studium auch mit 
angefangen und ich hab 

730
00:40:17,760 --> 00:40:20,800
irgendwann damals das Debugging 
gelernt, ne und wollte irgendwas

731
00:40:20,800 --> 00:40:23,680
in nem Objekt debuggen und auf 
einmal findest du dich beim 

732
00:40:23,680 --> 00:40:27,080
debuggen in irgendeinem Proxy 
wieder und du denkst dir was zur

733
00:40:27,080 --> 00:40:31,200
Hölle passiert denn hier gerade?
Also du kannst rein, da wollte 

734
00:40:31,200 --> 00:40:34,320
ich doch gar nicht hin, das 
heißt du kannst irgendwo landen 

735
00:40:34,320 --> 00:40:35,880
wo du eigentlich vielleicht gar 
nicht landen willst. 

736
00:40:35,880 --> 00:40:37,680
Und wenn du da nicht weißt, was 
da eigentlich los ist, dann 

737
00:40:37,680 --> 00:40:40,800
denkst du dir so okay warte mal.
Ich check es nicht so. 

738
00:40:40,800 --> 00:40:43,840
Weißt du, das heißt, das ist 
natürlich ein bisschen 

739
00:40:44,000 --> 00:40:46,800
komplexer, schwieriger, dann 
unter Umständen ne, ich sag 

740
00:40:46,800 --> 00:40:49,320
nicht, das ist immer so, ist 
aber unter Umständen und du hast

741
00:40:49,320 --> 00:40:53,600
logischerweise eventuellen 
Performancearbeit. 

742
00:40:53,600 --> 00:40:55,800
Also es ist natürlich, es kommt 
drauf an ne wenn du jetzt zum 

743
00:40:55,800 --> 00:40:58,320
Beispiel sagst du hast ein Cash,
ja dann ist es, dient es 

744
00:40:58,320 --> 00:41:02,480
natürlich logischerweise. 
Die Performance zu optimieren, 

745
00:41:02,480 --> 00:41:06,440
aber rein laufzeittechnisch wenn
du irgendwas tust, jetzt mal 

746
00:41:06,440 --> 00:41:09,600
unabhängig vom Anwendungsfall 
hast du natürlich mehr Aufrufe 

747
00:41:09,600 --> 00:41:12,320
mehr zu tun, mehr hier, mehr da 
zu gucken, mehr zu überprüfen, 

748
00:41:12,480 --> 00:41:15,000
unter Umständen wie gesagt, es 
kommt immer ein bisschen auf die

749
00:41:15,000 --> 00:41:18,560
Implementierung. 
Naja du klar, du hast halt wenn 

750
00:41:18,560 --> 00:41:20,920
wenn du keinen Nutzen dahinter 
ist und du sagst einfach nur ich

751
00:41:20,920 --> 00:41:23,960
verwende das Proxy Pattern um es
einfach drin zu haben, weil ich 

752
00:41:23,960 --> 00:41:25,920
habe das gelernt und ich will 
das jetzt verwenden. 

753
00:41:26,920 --> 00:41:29,160
Erzeugt es natürlich n Overhead,
der sich erstmal rechtfertigen 

754
00:41:29,160 --> 00:41:32,960
muss ne oder oder sich lohnen 
muss, wie zum Beispiel wie du 

755
00:41:32,960 --> 00:41:35,680
meintest ja, aber ich möchte ja 
ein Caching implementieren damit

756
00:41:35,680 --> 00:41:38,400
und damit kriege ich über die 
Gesamtheit wieder ne bessere 

757
00:41:38,400 --> 00:41:40,680
Performance hin, weil ich 
einfach Cache ja und nicht 

758
00:41:40,680 --> 00:41:44,160
einfach nur n Proxy aufrufe, der
am Ende auch nur den Service den

759
00:41:44,160 --> 00:41:46,080
Echten aufruft. 
Ja, das ist dann. 

760
00:41:46,080 --> 00:41:48,720
Richtig, einfach auch gut ab zu.
Grenzen, weil sonst könnte man 

761
00:41:48,720 --> 00:41:50,480
sagen, ja, ich hab doch gerade 
über Performance gesprochen. 

762
00:41:50,480 --> 00:41:52,560
Wieso ist das jetzt? 
Ja, absolut absolut. 

763
00:41:52,640 --> 00:41:56,320
Ich find auch die Banking ist n 
super, Stichwort weil. 

764
00:41:57,200 --> 00:42:00,320
Proxy das Pattern kann man ja 
auch verketten, man kann ja 

765
00:42:00,320 --> 00:42:04,160
Proxys verketten, also findet 
man ganz oft unter Proxy 

766
00:42:04,200 --> 00:42:09,560
chaining und das bietet 
Möglichkeiten, natürlich klar, 

767
00:42:09,560 --> 00:42:12,800
also wenn du eine komplexere 
Logik hast, komplexere Checks 

768
00:42:12,800 --> 00:42:15,280
oder so, dann kann ich so was ja
auch verketten, das verbietet 

769
00:42:15,280 --> 00:42:18,320
mir ja keiner, weil wie gesagt, 
der Client weiß ja nicht was 

770
00:42:18,320 --> 00:42:20,640
dahinter ist. 
Ob der jetzt mehrere Proxys 

771
00:42:20,640 --> 00:42:23,680
durchläuft, bis er eigentlich 
irgendwann mal zu einem echten 

772
00:42:23,680 --> 00:42:26,360
Service kommt, der seine Anfrage
bearbeitet oder nicht, die. 

773
00:42:26,720 --> 00:42:29,400
Merkt er ja nicht. 
Fakt ist und das Stichwort, die 

774
00:42:29,400 --> 00:42:33,240
Backen ist da super, wenn dann 
irgendwo n Fehler in der Mitte 

775
00:42:33,240 --> 00:42:36,560
bei irgendeinem Proxy ist und du
weißt gar nicht mehr, lande ich 

776
00:42:36,560 --> 00:42:39,680
jetzt in dem Fall, wann lande 
ich da, was muss passieren, 

777
00:42:39,680 --> 00:42:42,360
damit ich da überhaupt hinkomme 
und das sind die backen kann 

778
00:42:42,360 --> 00:42:46,440
dann richtig richtig anstrengend
werden, also da halt auch sag 

779
00:42:46,440 --> 00:42:49,080
ich mal mit Vorsicht das Ganze 
genießen wenn man sagt Hey wäre 

780
00:42:49,080 --> 00:42:51,400
aber geil wenn ich jetzt noch n 
Proxy dahinter hätte, weil man 

781
00:42:51,400 --> 00:42:53,680
jetzt so n bisschen die Vorteile
gelernt hat dadurch. 

782
00:42:54,000 --> 00:42:58,000
Und anfängt, die zu verketten. 
Wie gesagt, gibt es, macht man 

783
00:42:58,000 --> 00:43:00,960
in gewissen Fällen auch, aber 
mit Vorsicht genießen auf jeden 

784
00:43:00,960 --> 00:43:04,320
Fall, das wär auf jeden Fall 
mein Rat, weil sowas zu debacken

785
00:43:04,320 --> 00:43:05,920
kann halt richtig die Hölle 
werden. 

786
00:43:06,880 --> 00:43:09,720
Und ja klar, mehr Struktur, mehr
Abstraktion. 

787
00:43:09,720 --> 00:43:12,360
Was du meintest, ich finde, das 
ist halt immer witzig, weil das 

788
00:43:12,360 --> 00:43:15,680
ist sowohl vor und Nachteil bei 
gefühlt allen Patterns wie du ja

789
00:43:15,680 --> 00:43:18,440
meintest, weil Hey mein Vorteil 
ist, ich habe mehr Struktur in 

790
00:43:18,440 --> 00:43:21,000
meiner Software Software und 
mein Nachteil ist ich muss 

791
00:43:21,000 --> 00:43:24,480
Struktur mehr Struktur aufbauen 
ja OK klar, also es muss sich 

792
00:43:24,480 --> 00:43:27,320
natürlich lohnen wenn ich so 
kleine Skripte schreibe, dann 

793
00:43:27,320 --> 00:43:29,600
brauche ich mit sowas nicht 
anfangen, wenn es keinen echten 

794
00:43:29,600 --> 00:43:32,400
Anwendungsfall gibt wie du auch 
meintest ne aber. 

795
00:43:33,040 --> 00:43:37,000
Sobald ich irgendwie so Security
Performance oder auch Legacy 

796
00:43:37,000 --> 00:43:40,880
kann, da auch mit Reinspielen. 
Ja so Aspekte habe kann ich ja 

797
00:43:40,880 --> 00:43:44,400
dieses Open Close principle 
dahinter ne dass ich halt von 

798
00:43:44,400 --> 00:43:48,640
außen nicht weiß was da drin 
passiert ist ja n gutes Prinzip,

799
00:43:48,640 --> 00:43:51,520
das kann ich ja für mich nutzen 
an der Stelle ich kann 

800
00:43:51,760 --> 00:43:55,440
bestehenden Code stabil halten, 
ich kann das ändern ohne dass 

801
00:43:55,440 --> 00:43:58,080
ich viel anderen Code anrühren 
muss. 

802
00:43:58,560 --> 00:44:02,320
Ja, testbarkeit auch klar, 
sobald ich anfange mit 

803
00:44:02,320 --> 00:44:04,400
Interfaces zu arbeiten, kann ich
mir natürlich auch 

804
00:44:04,400 --> 00:44:08,280
testimplementierung davon machen
und dann wirklich sauber und 

805
00:44:08,280 --> 00:44:11,280
ordentlich diese Software 
abtesten darf man ja auch nicht 

806
00:44:11,280 --> 00:44:14,320
unterschätzen, was das für ein 
Mehrwert in einem Projekt gibt. 

807
00:44:14,640 --> 00:44:16,960
Ja, wir sind der absolute 
Verfechter davon, deswegen auch 

808
00:44:16,960 --> 00:44:22,120
hier noch mal die Anmerkung, 
definitiv aber was was sind so 

809
00:44:22,120 --> 00:44:25,520
typische Anfängerfehler die das 
gilt ja sag ich mal für viele 

810
00:44:25,520 --> 00:44:28,360
Pattern so natürlich auch fürs 
Proxy pattern das. 

811
00:44:28,440 --> 00:44:31,440
Was also ich hatte jetzt schon 
mal eine Sache genannt, ist so 

812
00:44:31,440 --> 00:44:34,640
was wie triviale Skripte, kleine
Logiken. 

813
00:44:34,800 --> 00:44:39,000
Ja, ich, ich sag ich mal, ich 
hab n getter, ja ich will jetzt 

814
00:44:39,000 --> 00:44:43,120
irgend n wert haben, dann sag 
ich ja nicht get x zum Beispiel 

815
00:44:43,280 --> 00:44:47,520
Moment Get X wird jetzt erstmal 
durch n Proxy laufen und ich 

816
00:44:47,520 --> 00:44:49,480
werde gucken ob du x haben 
darfst. 

817
00:44:49,840 --> 00:44:52,280
Ja klar dass du x haben an der 
Stelle es gibt. 

818
00:44:52,520 --> 00:44:56,320
Kein Access Logic dahinter, das 
ist n Getta als Beispiel. 

819
00:44:56,320 --> 00:45:02,800
Ja, es ist halt n Getta, der ist
Public Mann, weißt du also das 

820
00:45:02,800 --> 00:45:05,480
aber ich kenn das deswegen, das 
ist überhaupt keine Verteufelung

821
00:45:05,480 --> 00:45:09,360
oder sich drüber lustig machen, 
sondern bei mir war es wirklich 

822
00:45:09,360 --> 00:45:11,520
so, ich hab n Pattern gelernt 
und ich hab es verwendet. 

823
00:45:11,880 --> 00:45:13,920
Und es ist meiner Meinung nach 
auch der richtige Weg. 

824
00:45:13,920 --> 00:45:17,440
Aber man sollte sich dann halt 
fragen, wenn man mehrere kennt, 

825
00:45:17,600 --> 00:45:20,720
wann macht es Sinn halt so ne. 
Der typische Anwendungsfall, 

826
00:45:20,720 --> 00:45:23,120
wenn du dich irgendwo hinstellst
auf irgend ne Brücke und sagst, 

827
00:45:23,120 --> 00:45:25,440
entschuldigen Sie sie dürfen 
hier vorbei. 

828
00:45:26,160 --> 00:45:28,320
Ja ich weiß jeder da vorbei, 
aber sie dürfen auch vorbei. 

829
00:45:28,800 --> 00:45:33,120
Ja, Sir, warten Sie bitte kurz. 
Das ist ne öffentliche Strafe, 

830
00:45:33,120 --> 00:45:36,640
wird weitergehen. 
Ich muss das nur kurz 

831
00:45:36,640 --> 00:45:40,080
kontrollieren. 
Oh Gott, ey. 

832
00:45:41,040 --> 00:45:43,840
Aber es ist auf jeden Fall genau
bei einfachen Gattern definitiv 

833
00:45:43,840 --> 00:45:48,240
triviale Logik oder? 
Weiß nicht wirklich kleine 

834
00:45:48,240 --> 00:45:52,440
Services, die sag ich jetzt mal 
sehr kleinen Umfang. 

835
00:45:52,440 --> 00:45:55,520
Sorry, die ich mir vorstelle, 
ich find's immer auch Scheiße. 

836
00:45:55,520 --> 00:45:57,840
Witzig, steht dir vor, steht 
einer echt auf der Brücke, so 

837
00:45:58,080 --> 00:45:59,040
entschuldigen. 
Sie. 

838
00:45:59,600 --> 00:46:01,400
Ich dürfte bitte nicht Ihren 
Ausweis sehen. 

839
00:46:01,400 --> 00:46:08,520
Gehen sie weiter, Oh Gott, ey. 
Ja, aber so, da macht's keinen 

840
00:46:08,520 --> 00:46:10,000
Sinn. 
Stell ihn nicht auf die Brücke, 

841
00:46:10,000 --> 00:46:11,920
sonst Security, wenn der da 
nicht zu Gott. 

842
00:46:11,920 --> 00:46:13,520
Lass die Leute einfach drüber 
laufen. 

843
00:46:14,160 --> 00:46:18,040
Also wenn man das jetzt so kurz,
ich sag mal kurz und knackig 

844
00:46:18,040 --> 00:46:21,760
zusammenfassen will, wenn du 
kein Problem hast, ja nutz kein 

845
00:46:21,760 --> 00:46:24,880
Pattern. 
Ja wenn du kein Security oder 

846
00:46:24,880 --> 00:46:27,920
Performance Thema hast, nutz 
kein Proxy. 

847
00:46:28,880 --> 00:46:31,080
Es macht kein lazy loading, wenn
es nichts zu laden gibt. 

848
00:46:35,320 --> 00:46:39,160
Okay. 
Gut, dann hauen wir doch mal so 

849
00:46:39,160 --> 00:46:41,600
ein paar Take aways. 
Wir haben es jetzt gut 

850
00:46:41,600 --> 00:46:45,440
zusammengefasst. 
Die vor und Nachteile genannt. 

851
00:46:45,520 --> 00:46:47,920
Genau gibt man noch mal so 
abschließend paar Take. 

852
00:46:47,920 --> 00:46:51,920
Aways also was wir sage ich 
jetzt mal gelernt haben, ja aus 

853
00:46:51,920 --> 00:46:55,040
dieser Folge ein Proxy ist ein 
Stellvertreter. 

854
00:46:57,160 --> 00:47:00,480
Ey, ganz ehrlich, ich habe das 
ja, es ist die Übersetzung okay.

855
00:47:00,800 --> 00:47:03,360
Aber ich habe es noch nie als 
Stellvertreter in meinem Kopf 

856
00:47:03,520 --> 00:47:05,320
also genannt. 
So weißt du, es ist. 

857
00:47:05,920 --> 00:47:10,720
Es wie sagt man, ich komm nicht 
aufs Wort, also es macht mich 

858
00:47:10,720 --> 00:47:12,600
fertig. 
Ich rede also mit dir selbst, 

859
00:47:12,600 --> 00:47:16,640
aber nicht so, nein, ich habe 
keinen Stellvertreter, der mit 

860
00:47:16,640 --> 00:47:20,240
mir selbst redet, nein, mir 
fehlt das Wort, ich habe es noch

861
00:47:20,240 --> 00:47:24,880
nie so klassifiziert okay 
verstehe, ja verstehe habe ich 

862
00:47:24,880 --> 00:47:27,520
auch lange nicht, aber 
irgendwann als ich es verstanden

863
00:47:27,520 --> 00:47:29,440
habe es gibt kein Zurück mehr 
jetzt. 

864
00:47:30,320 --> 00:47:32,240
Genau also wie gesagt Proxy 
Stellvertreter. 

865
00:47:32,240 --> 00:47:35,760
Er kontrolliert ja. 
Oder delegiert. 

866
00:47:35,760 --> 00:47:39,200
Oder was wir genannt hatten. 
Aber er arbeitet nicht, also 

867
00:47:39,200 --> 00:47:42,240
genau, ganz wichtig, also ich 
nenne es jetzt mal, arbeitet 

868
00:47:42,240 --> 00:47:45,160
nicht in der Business Logik, 
also diese Business Logik die 

869
00:47:45,160 --> 00:47:47,360
stattfinden soll, das ist auch 
finde ich noch mal ein wichtiger

870
00:47:47,360 --> 00:47:50,800
Punkt, du duplizierst nicht 
irgendeine Logik, sondern der 

871
00:47:50,800 --> 00:47:55,440
Proxy sagt am Ende auch wenn 
alles erlaubt ist. 

872
00:47:55,440 --> 00:47:59,680
Zum Beispiel bitte echtes 
Objekt, mach jetzt deine Arbeit,

873
00:47:59,680 --> 00:48:03,680
also diese Business Logik. 
Das Interface bleibt gleich, was

874
00:48:03,680 --> 00:48:07,080
der Proxy und das echte Objekt, 
beide haben ne, also beide 

875
00:48:07,080 --> 00:48:11,200
Objekte können genau das ist 
immer das gleiche, ja nur dass 

876
00:48:11,200 --> 00:48:14,640
dann im Endeffekt der Proxy 
wiederum aufruft, was der echt, 

877
00:48:14,640 --> 00:48:18,560
dass das echte Objekt machen 
soll genau ist super, für was 

878
00:48:18,560 --> 00:48:21,520
hatten wir gesagt, Security und 
Performance zum Beispiel, auch 

879
00:48:21,520 --> 00:48:28,640
wenn es n Performance over wie 
sagt man Overhead bringen kann 

880
00:48:28,640 --> 00:48:33,520
ja aber auch da aufpassen, nein.
Ihr wisst, was ich meine und 

881
00:48:34,080 --> 00:48:36,000
gefährlich ist. 
Aber, und das muss man natürlich

882
00:48:36,000 --> 00:48:37,560
auch immer sagen, ist over 
Engineering, wie du auch 

883
00:48:37,560 --> 00:48:41,280
meintest, nicht so viel Proxys 
ineinander hintereinander 

884
00:48:41,280 --> 00:48:44,400
schalten, wo du dann irgendwann 
überhaupt nicht mehr weißt, an 

885
00:48:44,400 --> 00:48:47,240
welchem Proxy du rechts 
abgebogen bist, sondern halt 

886
00:48:47,240 --> 00:48:50,480
eben bewusst einsetzen. 
Also Patterns sind halt eben 

887
00:48:50,720 --> 00:48:54,560
Werkzeuge, aber keine Pflicht, 
also du musst es nicht nutzen, 

888
00:48:54,640 --> 00:48:56,400
kannst es nutzen, wenn es Sinn 
macht. 

889
00:48:57,760 --> 00:48:59,400
Genau. 
Genau also die bewusste 

890
00:48:59,400 --> 00:49:01,760
Entscheidung für ein Pattern 
treffen mit den Argumenten 

891
00:49:01,760 --> 00:49:03,840
dafür. 
Gerade wenn man so diese vor und

892
00:49:03,840 --> 00:49:06,720
Nachteile, die wir ja besprochen
haben, mal abwägt, kann man ja 

893
00:49:06,720 --> 00:49:09,440
für sich entscheiden, ist das 
gerade ein Anwendungsfall dafür 

894
00:49:09,440 --> 00:49:11,840
oder nicht oder gibt es 
vielleicht ein anderes Pattern, 

895
00:49:11,840 --> 00:49:14,960
was eher meiner Vorstellung 
entspricht, wenn ich 

896
00:49:14,960 --> 00:49:17,760
beispielsweise sage, ich möchte 
es kompatibel gestalten, dann 

897
00:49:17,760 --> 00:49:20,320
ist es halt eher das Adapter 
Pattern, ja als wenn ich gar 

898
00:49:20,320 --> 00:49:22,560
nicht zum Beispiel so eine 
Access Control machen möchte, 

899
00:49:22,560 --> 00:49:23,720
aber. 
Und das sind genau die 

900
00:49:23,720 --> 00:49:25,920
Entscheidungen, die Fragen, die 
man sich stellen muss. 

901
00:49:26,080 --> 00:49:28,560
Und deswegen, liebe Zuhörer und 
liebe Zuhörer, auch mal die 

902
00:49:28,560 --> 00:49:32,800
Abschlussfrage an dich. 
Zu dieser Folge hast du in einem

903
00:49:32,800 --> 00:49:35,920
Projekt vielleicht schon mal mit
einem Proxy gearbeitet, in einer

904
00:49:35,920 --> 00:49:40,080
Software, ohne dass du es 
vielleicht weißt oder bewusst 

905
00:49:40,080 --> 00:49:42,920
eingesetzt hast. 
Lass es uns gerne wissen, 

906
00:49:42,920 --> 00:49:45,720
schreib uns auf allen 
Plattformen also auf, die nicht 

907
00:49:45,720 --> 00:49:48,160
auf allen Plattformen, sondern 
auf der Plattform deiner Wahl so

908
00:49:48,160 --> 00:49:50,120
rum, du kannst es aber auch auf 
einen schreiben, wir freuen uns 

909
00:49:50,120 --> 00:49:51,840
über jede Nachricht, auch wenn 
sie doppelt ist. 

910
00:49:52,880 --> 00:49:58,560
Und ja, deswegen bleibt mir auch
gar nicht mehr so viel zu sagen,

911
00:49:59,280 --> 00:50:01,080
falls der Podcast dir gefallen 
hat. 

912
00:50:01,080 --> 00:50:03,840
Liebe zuhören, lieber Zuhörer, 
lass gerne Bewertung da 

913
00:50:03,840 --> 00:50:07,560
empfehlen, gerne weiter kommen, 
unsere Community auf unseren 

914
00:50:07,560 --> 00:50:10,320
Discord Channel, Schau dir gerne
auch unsere anderen Plattformen 

915
00:50:10,320 --> 00:50:13,120
an, Schau auf Twitch mal vorbei 
in den Livestreams immer 

916
00:50:13,120 --> 00:50:16,800
Dienstag 20:00 Uhr kommen wir 
zusammen, da werden auch mal 

917
00:50:16,800 --> 00:50:19,360
Pattern auftreten wenn sie denn 
gebraucht werden und. 

918
00:50:20,560 --> 00:50:25,800
Und ansonsten findest du auch in
den Shownotes und Spenden Link. 

919
00:50:25,800 --> 00:50:27,760
Wenn du sagst, der Podcast ist 
richtig, richtig cool. 

920
00:50:27,760 --> 00:50:30,600
Ich würde euch gerne beide 
unterstützen, dann vielen vielen

921
00:50:30,600 --> 00:50:34,520
Dank dafür und ansonsten würde 
ich sagen, hören uns alle 

922
00:50:34,520 --> 00:50:37,320
nächste Woche wieder zu einer 
brandneuen Folge, habt eine 

923
00:50:37,320 --> 00:50:41,160
schöne Zeit bis dahin, eine gute
Woche und bis dahin deine Coding

924
00:50:41,160 --> 00:50:45,720
war. 
Dies gemeinsam besser die alle 

925
00:50:45,800 --> 00:50:48,080
liefen nicht mehr egal ist 
wirklich gut die Mail. 

926
00:50:48,120 --> 00:50:49,760
Was ist schon wieder, heißt es 
schon wieder mit Essen nicht. 

927
00:50:50,520 --> 00:50:53,640
Wir holen uns einen Burger ab 
und fahren es noch von OK.

