1
00:00:00,080 --> 00:00:02,480
Also es ist jetzt nur ein 
Gedankenexperiment, ich mach es 

2
00:00:02,480 --> 00:00:04,400
so nicht. 
Ja lass es mir so stehen. 

3
00:00:04,400 --> 00:00:07,840
Du stehst gerade super da, wenn 
sie das hören, dann denken sie 

4
00:00:07,840 --> 00:00:12,480
sich so, och Mensch, der Fabi 
Coding Buddies, Dein Podcast 

5
00:00:12,480 --> 00:00:16,000
rund um Softwareentwicklung und 
aktueller Tech News herzlich 

6
00:00:16,000 --> 00:00:30,160
Willkommen. 
Hallöchen, Hallöchen, willkommen

7
00:00:30,160 --> 00:00:32,000
zur neuen Folge des Cooningbodys
Podcasts. 

8
00:00:32,000 --> 00:00:34,320
Schön, dass du wieder 
eingeschaltet hast, deine 

9
00:00:34,320 --> 00:00:36,960
Gastgeber. 
Und wie soll es anders sein, 

10
00:00:36,960 --> 00:00:41,600
meine Wenigkeit, der Tino und er
lächelt mich wie immer an, der 

11
00:00:41,600 --> 00:00:44,880
fantastische Fabi, Ich möchte 
dich begrüßen was geht ab Fabi 

12
00:00:44,960 --> 00:00:49,000
einen wunderschönen guten Tag 
Tino einen wunderschönen guten 

13
00:00:49,000 --> 00:00:53,520
Tag auch an dich gerichtet 
Dankeschön was geht was geht. 

14
00:00:53,760 --> 00:00:57,320
Was geht so ab? 
N bisschen kalt so und grad so n

15
00:00:57,320 --> 00:00:59,600
bisschen kalt würd ich sagen, 
aber. 

16
00:00:59,600 --> 00:01:03,360
Hast du mal, hast du sagt man 
das beim beim Kalendertag auch? 

17
00:01:03,360 --> 00:01:06,040
Hast du mal auf die Uhr geguckt?
Nee, also hast du mal in 

18
00:01:06,040 --> 00:01:08,960
Kalender geguckt, es ist 
logisch, dass es langsam kalt 

19
00:01:08,960 --> 00:01:12,480
wird, aber ich find es ist auch 
so richtig ungemütlich ne also 

20
00:01:12,480 --> 00:01:16,800
es ist so, das ist ja nicht so 
kalt schön das ist so kalt, 

21
00:01:16,800 --> 00:01:20,000
ungemütlich, durchwachsen, ist 
so nasskalt. 

22
00:01:20,560 --> 00:01:24,880
Ja, ja, ja, ja, aber das Ding 
ist so es es kann ja kalt 

23
00:01:24,880 --> 00:01:27,360
werden, aber trotzdem gibt es 
manchmal so Tage, wo es einen so

24
00:01:27,360 --> 00:01:31,160
fröstelt. 
Mhm, weißt du, und manchmal ist 

25
00:01:31,160 --> 00:01:33,280
es nicht so, also es ist o. 
K. 

26
00:01:33,280 --> 00:01:35,200
Und heute ist so n Tag wo es 
dich fröstelt. 

27
00:01:35,200 --> 00:01:42,280
Na ja, so n bisschen OK. 
Na ja, passiert passiert, aber 

28
00:01:42,280 --> 00:01:45,680
ich denk mal im Laufe der Folge 
ja wenn du wieder so richtig on 

29
00:01:45,680 --> 00:01:48,960
fire bist fürs Thema, dann wird 
das schon wieder gehen, dann 

30
00:01:48,960 --> 00:01:54,400
wirst du dich fangen, dann 
schwitze ich wieder wieder so, 

31
00:01:54,560 --> 00:01:56,000
wenn wieder so hart diskutiert 
wird. 

32
00:01:56,960 --> 00:01:59,680
Ist aber echt komisch, weil 
manchmal schwitze ich bei der. 

33
00:01:59,920 --> 00:02:03,120
Bei der Aufnahme. 
Einfach. 

34
00:02:03,120 --> 00:02:06,720
Aufregung, schwitzen vom Reden. 
Das ist die Anspannung, das 

35
00:02:06,720 --> 00:02:10,360
kennt glaub ich jeder. 
Du brauchst ja nicht angespannt 

36
00:02:10,360 --> 00:02:12,160
sein, weil wir haben heute n 
ziemlich cooles Thema, worüber 

37
00:02:12,160 --> 00:02:14,640
wir sprechen können. 
Aber bevor wir dazu kommen, das 

38
00:02:14,640 --> 00:02:17,160
ist n Thema, wo vielleicht jetzt
der eine oder andere angespannt 

39
00:02:17,160 --> 00:02:20,640
sein sollte und zwar liebe 
Zuhörer, liebe Zuhörer, falls du

40
00:02:20,640 --> 00:02:24,240
es nicht mitbekommen hast oder 
noch nicht Teil unseres Turniers

41
00:02:24,240 --> 00:02:27,960
bist, es ist jetzt wirklich die 
höchste oder letzte Eisenbahn, 

42
00:02:27,960 --> 00:02:32,400
wie sagt man so schön noch 
mitzumachen, denn nur noch 

43
00:02:32,720 --> 00:02:37,520
wenige Stunden Minuten am 
Turnier teilzunehmen, Minuten, 

44
00:02:37,520 --> 00:02:40,560
Sekunden. 
Denn wir sind auf der Zigeran 

45
00:02:40,720 --> 00:02:45,040
jetzt zum Zeitpunkt der Aufnahme
und wir sind mega gespannt, 

46
00:02:45,200 --> 00:02:46,960
wieviel Einreichungen es am Ende
wären. 

47
00:02:46,960 --> 00:02:49,600
Für unser For connect extreme 
Turnier. 

48
00:02:50,160 --> 00:02:54,000
Und ja ich ich bin hypefarbig 
ich weiß gar nicht was ich noch 

49
00:02:54,000 --> 00:02:56,560
dazu sagen soll, ich bin absolut
Hype, die Phase ging jetzt doch 

50
00:02:56,560 --> 00:02:58,960
recht schnell rum, die 
Implementierungsphase, es wurde 

51
00:02:58,960 --> 00:03:01,920
viel diskutiert auf dem Discord,
es gab viel Feedback, viele 

52
00:03:01,920 --> 00:03:04,880
Leute die gesagt haben sie 
machen mit, ich bin aber nur 

53
00:03:04,880 --> 00:03:06,080
Hype, ich hab richtig Bock 
drauf. 

54
00:03:06,720 --> 00:03:08,640
Ja, ich auch. 
Ich bin auf jeden Fall gespannt,

55
00:03:08,640 --> 00:03:12,120
wie es dann wird, wir werden ja 
dann das Turnier auf Twitch 

56
00:03:12,120 --> 00:03:17,960
veranstalten, live und in Farbe 
sozusagen, und mal gucken, mal 

57
00:03:17,960 --> 00:03:20,240
gucken, ob wir es überhaupt 
schaffen, an einem Stream 

58
00:03:20,240 --> 00:03:22,440
durchzuziehen oder ob wir dafür 
vielleicht sogar mehr brauchen. 

59
00:03:22,640 --> 00:03:24,480
Ich bin gespannt, kommt drauf 
an. 

60
00:03:25,360 --> 00:03:28,120
Genau das werden wir sehen, wenn
wir die finalen Einreichungen 

61
00:03:28,120 --> 00:03:31,600
ausgewertet haben. 
Wie viele es dann am Ende sind 

62
00:03:32,160 --> 00:03:35,520
und. 
Ja, es gibt auf jeden Fall coole

63
00:03:35,520 --> 00:03:37,280
Sachen zu gewinnen. 
Leute, guckt da mal rein. 

64
00:03:37,280 --> 00:03:40,400
Auf unserer Website stehen auf 
jeden Fall die Preise, da kann 

65
00:03:40,400 --> 00:03:43,600
man mal gucken, was es zu 
gewinnen gibt, denkt immer dran,

66
00:03:43,600 --> 00:03:46,560
gibt auch coole Sachen von 
unserem Sponsor Jet Brains, also

67
00:03:47,760 --> 00:03:49,800
checkt das mal aus, falls ihr es
noch nicht gemacht. 

68
00:03:49,800 --> 00:03:54,080
Habt genau und falls ihr sagt, 
Nee, das ist jetzt zu knapp, 

69
00:03:54,080 --> 00:03:56,880
keine Sorge, es werden weitere 
Turniere folgen, dann macht ihr 

70
00:03:56,880 --> 00:04:01,280
einfach beim nächsten Mal mit. 
Und ja genau genug dazu. 

71
00:04:01,280 --> 00:04:03,160
Lass uns zum heutigen Thema 
kommen, wir haben nämlich schon 

72
00:04:03,160 --> 00:04:08,800
lange keine Design Pattern folge
mehr gemacht und deswegen geht 

73
00:04:08,800 --> 00:04:14,960
es da heute auch direkt weiter. 
Wir hatten ja als letztes uns 

74
00:04:14,960 --> 00:04:20,160
das Adapter Pattern angeguckt 
und sind ja damit so in die. 

75
00:04:20,880 --> 00:04:24,400
Strukturellen Design Pattern 
gegangen und da möchte ich heute

76
00:04:24,400 --> 00:04:26,920
auch weitermachen und ich hab 
mal n weiteres ausgewählt, was 

77
00:04:26,920 --> 00:04:31,280
wir uns heute angucken werden 
und zwar das decorator Pattern. 

78
00:04:32,000 --> 00:04:35,360
Und möchtest du vielleicht 
einfach mal so n bisschen 

79
00:04:35,520 --> 00:04:39,200
anteasern, n bisschen langsam 
rein in die Folge was es mit dem

80
00:04:39,200 --> 00:04:42,400
Pattern auf sich hat. 
Ja, sehr gerne. 

81
00:04:42,480 --> 00:04:46,880
Tino, sehr gerne. 
Und zwar ist das decorator 

82
00:04:46,880 --> 00:04:52,480
Pattern dient ja dafür. 
Um wie willst du es sagen, halt 

83
00:04:52,480 --> 00:04:54,880
Objekte. 
Wie der Name schon ein bisschen 

84
00:04:54,880 --> 00:04:58,480
sagt zu dekorieren. 
Ja, also du kannst zum Beispiel 

85
00:04:58,480 --> 00:05:03,120
sagen, dass du halt, ich sag 
mal, wenn du jetzt so n Geschenk

86
00:05:03,120 --> 00:05:06,640
hast oder so ne kennst ja ne 
Weihnachten kommt auch bald, 

87
00:05:06,640 --> 00:05:10,720
hast n Geschenk und das wird ja 
meistens irgendwie eingepackt ne

88
00:05:10,720 --> 00:05:14,480
und jetzt hast du vielleicht so,
dass du dir sagst, ah, dieses 

89
00:05:14,480 --> 00:05:18,000
Jahr vielleicht mal nicht so 
viel sich überlegen. 

90
00:05:18,640 --> 00:05:21,040
Meine Schwester, meine Mutter 
und meine Oma, die kriegen alle 

91
00:05:21,040 --> 00:05:24,000
das gleiche. 
Ne keine Ahnung, kaufst halt das

92
00:05:24,000 --> 00:05:27,600
gleiche, packst es aber anders 
ein, weil du zum Beispiel sagst 

93
00:05:27,600 --> 00:05:31,920
ne, aber zum Beispiel Mama, die 
mag lieber beispielsweise Farbe 

94
00:05:31,920 --> 00:05:34,760
gelb ja und meine Oma zum 
Beispiel, die mag lieber die 

95
00:05:34,760 --> 00:05:39,040
Farbe rot, ne. 
Die Schwester grünt, was auch 

96
00:05:39,040 --> 00:05:41,200
immer so und dann nimmst du 
dementsprechend anderes 

97
00:05:41,200 --> 00:05:45,280
Geschenkpapier ja und packst 
dann halt dieses Geschenk ein. 

98
00:05:45,280 --> 00:05:47,840
Das Geschenk ist das Gleiche, 
ist es unterschiedlich 

99
00:05:47,840 --> 00:05:51,040
eingepackt, aber zum Beispiel 
weiß ich nicht für die Oma 

100
00:05:51,040 --> 00:05:53,880
schreibst du noch ne Karte dazu,
die du dann sozusagen noch mit 

101
00:05:53,880 --> 00:05:56,880
dran klebst. 
Ne an das Geschenk und bei der 

102
00:05:56,880 --> 00:05:59,920
Mama machst du aber noch ne 
Schleife dran und bei der 

103
00:05:59,920 --> 00:06:04,240
Schwester keine Ahnung, ja dann.
Kommt nichts mehr dran, weil 

104
00:06:04,240 --> 00:06:06,880
reicht schon, das wird eh nicht 
gewertschätzt, weil es ist nicht

105
00:06:06,880 --> 00:06:12,360
keiner. 
Nein, also im Endeffekt erst mal

106
00:06:12,360 --> 00:06:14,480
krass, dass du unterschiedliches
Geschenkpapier hast. 

107
00:06:14,480 --> 00:06:17,600
Ja, also bei mir ist das so. 
Ich kauf so ne Rolle und da pack

108
00:06:17,600 --> 00:06:20,920
ich einfach alle ein, weil es 
muss ja aufgebraucht werden und 

109
00:06:20,920 --> 00:06:23,520
dann sehen halt alle Geschenke 
sozusagen gleich aus, außer 

110
00:06:23,520 --> 00:06:25,920
natürlich in der im Umfang sag 
ich mal. 

111
00:06:26,400 --> 00:06:28,680
Aber vom Geschenkpapier her. 
Also ich find es erstmal 

112
00:06:28,680 --> 00:06:31,720
Chapeau, dass du sagst jeder 
kriegt seine eigene Farbe, das 

113
00:06:31,720 --> 00:06:33,040
find ich ja richtig toll 
erstmal. 

114
00:06:33,280 --> 00:06:35,720
Also es ist jetzt nur n 
Gedankenexperiment ich mach es 

115
00:06:35,720 --> 00:06:37,600
so nicht ja lass. 
Es uns so stehen. 

116
00:06:37,600 --> 00:06:40,640
Du stehst Grad super. 
Da, wenn Sie das hören, dann 

117
00:06:40,640 --> 00:06:41,920
denken Sie sich so, och Mensch, 
der. 

118
00:06:41,920 --> 00:06:47,920
Fabi, ich steh jetzt im Zug. 
Zwar glaub ich nee auch schon 

119
00:06:47,920 --> 00:06:50,480
mal Geschenkpapier genau, aber 
im Endeffekt kann man sich das 

120
00:06:50,480 --> 00:06:52,560
so vorstellen. 
Du hast also du hast immer das 

121
00:06:52,560 --> 00:06:54,560
gleiche Objekt da drin ne, also 
du hast immer. 

122
00:06:54,960 --> 00:06:56,800
Das also du hast das gleiche 
Geschenk, weil ich ja meint, das

123
00:06:56,800 --> 00:06:59,440
sind immer, es sind die gleichen
Geschenke für alle 3 Personen, 

124
00:06:59,600 --> 00:07:03,920
aber man packt sie anders ein 
und mit anderen Accessoires zum 

125
00:07:03,920 --> 00:07:05,920
Beispiel ne also du packst da 
zum Beispiel verschiedene Layer 

126
00:07:05,920 --> 00:07:10,000
dran, ne Geschenkpapier Schleife
oder Karte oder was auch immer 

127
00:07:10,320 --> 00:07:13,520
ne es kommen unterschiedliche 
Sachen dran, aber im Kern ist es

128
00:07:13,520 --> 00:07:16,640
halt eben das gleiche und so 
funktioniert es ungefähr halt 

129
00:07:16,640 --> 00:07:21,520
eben auch beim decorator Pattern
wenn es darum geht, dass du zum 

130
00:07:21,520 --> 00:07:24,320
Beispiel Objekte erstellst ne 
und sagst OK. 

131
00:07:24,560 --> 00:07:26,640
Du kannst die Objekte 
unterschiedlich dekorieren, mit 

132
00:07:26,640 --> 00:07:30,000
unterschiedlichen Dingen, aber 
im Kern ist es das gleiche 

133
00:07:30,000 --> 00:07:36,320
Objekt, genau, was man da so als
Ziel festhalten kann, ist oder 

134
00:07:36,320 --> 00:07:39,960
die Überlegung dahinter ist, wie
kann ich denn Objekte erweitern,

135
00:07:39,960 --> 00:07:41,960
wie du so schön meintest? 
Ja, dass ich jetzt Sie zum 

136
00:07:41,960 --> 00:07:45,080
Beispiel in Geschenkpapier 
einpacke, aber sie nicht 

137
00:07:45,080 --> 00:07:49,360
modifiziere oder neu schreibe. 
Das heißt, das Geschenk, wie du 

138
00:07:49,360 --> 00:07:52,000
ja auch meintest, es ist das 
gleiche am Ende, das heißt, ich 

139
00:07:52,000 --> 00:07:58,560
habe mit meinem Geschenkpapier 
einpackungsmanöver das Geschenk 

140
00:07:58,560 --> 00:08:01,360
nicht verändert, sondern ich 
habe nur etwas drumrum gepackt 

141
00:08:01,360 --> 00:08:05,000
und genau darum geht es halt 
auch und das ganze versucht man 

142
00:08:05,000 --> 00:08:08,680
jetzt halt nicht über um jetzt n
bisschen in die 

143
00:08:08,680 --> 00:08:12,320
Objektorientierung zu kommen, 
nicht mit Vererbung zu lösen. 

144
00:08:12,320 --> 00:08:15,560
Also dass ich sage. 
OK, ich möchte jetzt die 

145
00:08:15,560 --> 00:08:18,400
Geschenke unterschiedlich 
einpacken, also hab ich jetzt 

146
00:08:18,400 --> 00:08:21,520
vererbe ich jetzt von dem 
Geschenk an sich und hab 

147
00:08:21,520 --> 00:08:25,720
Geschenk a rotes Papier Geschenk
a gelbes Papier weißt du, dass 

148
00:08:25,720 --> 00:08:27,920
ich mir so einzelne Klassen 
daraus vererbe? 

149
00:08:28,320 --> 00:08:30,880
Das ist halt nicht das Ziel, 
sondern wie du schon meintest es

150
00:08:30,880 --> 00:08:34,080
wirklich herum zu packen und 
Geschenkpapier ist ne super 

151
00:08:34,080 --> 00:08:38,919
Analogie weil man das ja auch. 
Rappen nennt ja, und deswegen 

152
00:08:38,919 --> 00:08:43,520
wird es manchmal auch halt so 
allgemein Rapper genannt, das 

153
00:08:43,760 --> 00:08:47,000
decorator Pattern. 
Und genau darum soll es heute 

154
00:08:47,000 --> 00:08:51,360
auch gehen, denn es ist halt 
auch n sehr mächtiges Pattern, 

155
00:08:51,360 --> 00:08:54,920
was auch viel eingesetzt wird. 
Also ich bin mir eigentlich 

156
00:08:54,920 --> 00:08:58,560
ziemlich sicher, dass jeder, der
schon ne Weile codet oder auch 

157
00:08:58,560 --> 00:09:01,440
relativ schnell am Anfang, wenn 
man zum Beispiel ja vielleicht 

158
00:09:01,440 --> 00:09:04,480
mit Python startet oder so, da 
ist das ja auch so. 

159
00:09:05,040 --> 00:09:08,320
Ich sag mal nativ in der Sprache
eingebaut. 

160
00:09:08,320 --> 00:09:11,600
Ja, also du kannst halt dieses 
decorator Pattern wird dir halt 

161
00:09:11,600 --> 00:09:15,920
überall begegnen oder halt in 
Frameworks wie Angular. 

162
00:09:16,240 --> 00:09:19,160
Ja da hast du sowas auch wenn du
jetzt zum Beispiel an Components

163
00:09:19,160 --> 00:09:21,840
denkst, wie die deklariert 
werden, ne, dass das auf meta 

164
00:09:21,840 --> 00:09:23,880
eben erkannt wird, dass es ne 
Component ist. 

165
00:09:23,880 --> 00:09:27,600
Da hast du halt auch Decorators 
oft auch an so at Symbolen. 

166
00:09:28,400 --> 00:09:30,360
Erkennbar ja. 
Also man muss mal gucken, was 

167
00:09:30,360 --> 00:09:32,960
unter der Haube ist, aber das 
ist so n Anzeichen dafür, dass 

168
00:09:32,960 --> 00:09:37,760
da halt auch unter der Haube so 
n Pattern verwendet wird und ich

169
00:09:37,760 --> 00:09:40,240
find lass uns mal noch n 
bisschen bei Analogien bleiben, 

170
00:09:40,240 --> 00:09:44,160
dass man sich das Ganze noch n 
bisschen besser vorstellen kann,

171
00:09:44,160 --> 00:09:46,080
dann würd ich sagen hau ich mal 
die nächste rein, also das 

172
00:09:46,080 --> 00:09:49,160
Geschenkpapier fand ich auf 
jeden Fall cool, das kann man 

173
00:09:49,160 --> 00:09:51,840
sich gut vorstellen das ganze, 
ja das fand ich auch richtig gut

174
00:09:52,720 --> 00:09:55,040
ja ja du bist nicht zufrieden 
mit dir, das seh ich. 

175
00:09:56,640 --> 00:09:58,080
Das ist. 
So doof. 

176
00:10:00,720 --> 00:10:04,720
Aber ich denke, gerade bei der 
Design Pattern Reihe schulden 

177
00:10:04,720 --> 00:10:08,080
wir unseren Zuhörerinnen und 
Zuhörern eine Sache und zwar 

178
00:10:08,080 --> 00:10:09,880
dass wir ne Analogie mit Essen 
reden. 

179
00:10:09,880 --> 00:10:14,000
Also wir werden ja sehr oft sehr
oft darauf hingewiesen, dass die

180
00:10:14,000 --> 00:10:16,080
Leute immer nach den Folgen 
Hunger kriegen, weil wir immer 

181
00:10:16,080 --> 00:10:18,160
so oft über Essen reden und ich 
finde, das sollten wir jetzt 

182
00:10:18,160 --> 00:10:22,000
auch nicht einreißen lassen. 
Und deswegen bringe ich einfach 

183
00:10:22,000 --> 00:10:24,720
noch mal so ein. 2. 
Analogien aus dem Bereich des 

184
00:10:24,720 --> 00:10:30,760
Essens ja, und zwar stell dir 
vor, Pizza, Pizza, Pizza ist 

185
00:10:31,200 --> 00:10:34,720
echt. 
Ja das war klar, ich weiß auch 

186
00:10:34,720 --> 00:10:41,120
3123 Pizza ja Pizza ist halt n 
super Beispiel dafür, jetzt hast

187
00:10:41,120 --> 00:10:44,480
du ja gesagt, wir haben im 
Prinzip so ne Art Basisklasse, 

188
00:10:44,480 --> 00:10:47,800
das ist unsere Pizza ja also ne 
ganz einfache Margarita zum 

189
00:10:47,800 --> 00:10:50,880
Beispiel. 
Oder noch einfacher, ohne Käse, 

190
00:10:50,880 --> 00:10:52,480
einfach nur so mit Tomatensoße 
drauf. 

191
00:10:52,480 --> 00:10:56,120
Ne, du hast den Teig, du hast ne
gewisse Form und Tomatensoße 

192
00:10:56,120 --> 00:10:58,920
drauf, das ist so deine 
Basisklasse, da geht der Daumen 

193
00:10:58,920 --> 00:11:02,080
hoch, ganz genau fabi das ist 
super ne super Basis für ne 

194
00:11:02,080 --> 00:11:07,840
Pizza und ja jetzt möchte ich 
aber verschiedene Varianten 

195
00:11:07,840 --> 00:11:11,560
machen, aber ich möchte ja nicht
sagen in meinem Code oder sagen 

196
00:11:11,560 --> 00:11:13,920
wir mal so von der 
Vorstellungsweise, dass ich 

197
00:11:13,920 --> 00:11:18,000
jetzt Objekt. 
Hawaii Pizza um nur mal kurz n 

198
00:11:18,000 --> 00:11:22,000
paar Leute zu triggern. 
Ja tono keine Ahnung was es 

199
00:11:22,000 --> 00:11:26,560
alles gibt, so ja dann will ich 
ja nicht sagen, das ist also ich

200
00:11:26,560 --> 00:11:29,800
sag ja nicht ja nee das ist ne 
Hawaii Pizza und das ist ne 

201
00:11:29,800 --> 00:11:33,120
Thunfischpizza im Sinne von das 
sind 2 komplett unterschiedliche

202
00:11:33,120 --> 00:11:36,240
Sachen weil unter die Basis 
dahinter ist ja die gleiche 

203
00:11:36,240 --> 00:11:41,000
Pizza ne also wie stell ich 
diese Pizza her ich es sind ja 

204
00:11:41,000 --> 00:11:43,120
keine unterschiedlichen 
Herstellungsprozesse, dass ich 

205
00:11:43,120 --> 00:11:45,120
nicht die gleiche Basis hab, 
sondern. 

206
00:11:45,520 --> 00:11:51,360
Ich belege sie ne, also ich 
veränder nicht meine ganz 

207
00:11:51,360 --> 00:11:53,600
klassische Pizza, die liegt 
jetzt vor mir. 

208
00:11:54,160 --> 00:11:58,320
Ja keine Ahnung was ist so n 
Standard 28 Zentimeter 

209
00:11:58,320 --> 00:12:04,880
Durchwasser keine Ahnung super 
und dann fang ich halt an sie zu

210
00:12:04,880 --> 00:12:08,240
belegen nachdem wie ich sie 
haben möchte aber ich veränder 

211
00:12:08,240 --> 00:12:11,280
ja nicht meine Grundpizza und 
genau das ist das decorator 

212
00:12:11,280 --> 00:12:15,840
Prinzip dahinter, das heißt? 
Ich kann während der 

213
00:12:15,840 --> 00:12:19,120
Herstellung, und das ist jetzt n
ganz wichtiger Punkt bei dem 

214
00:12:19,120 --> 00:12:23,960
Pattern, ich kann während der 
Herstellung ja entscheiden, wie 

215
00:12:23,960 --> 00:12:26,400
ich Sie haben möchte, indem ich 
sie dekoriere. 

216
00:12:26,800 --> 00:12:28,480
Mhm. 
Ja, mit Geschenken. 

217
00:12:28,480 --> 00:12:32,720
Also ich muss ja nicht quasi 
während ich den Teig ausrolle, 

218
00:12:33,360 --> 00:12:36,240
ist ja noch nicht wichtig, was 
für ne Pizza das wird, 

219
00:12:36,320 --> 00:12:39,680
sozusagen, es ist ja die gleiche
Basis, das heißt ja keine 

220
00:12:39,680 --> 00:12:42,320
Ahnung, ich mach den Schinken 
drauf, ananaskäse drüber. 

221
00:12:43,440 --> 00:12:47,040
Ich find das Beispiel einfach 
super und dann hab ich ne Hawaii

222
00:12:47,040 --> 00:12:49,160
Pizza hergestellt. 
Aber wie gesagt das ist die 

223
00:12:49,160 --> 00:12:53,120
Basispizza dekoriert mit 
Schinken, mit Ananas und mit 

224
00:12:53,120 --> 00:12:56,920
Käse mit Geschenkpapier. 
Also ich erweiter das und in 

225
00:12:56,920 --> 00:13:01,680
Geschenkpapier eingepackt am 
Ende gelbes klar bei Pizza und 

226
00:13:01,680 --> 00:13:05,040
da das ist halt. 
Ich find daran kann man das gut 

227
00:13:05,040 --> 00:13:08,960
erkennen, weil jetzt nehm ich 
die nächste Basispizza und mach 

228
00:13:08,960 --> 00:13:12,480
statt den Schinken mach ich dann
Thunfisch, Zwiebeln, keine 

229
00:13:12,480 --> 00:13:16,480
Ahnung was da drauf kommt ne und
wieder Käse also käsebuster Käse

230
00:13:16,480 --> 00:13:17,920
kannst du fast zur Basispizza 
erzählen. 

231
00:13:19,200 --> 00:13:22,640
Ja und und so kann man sich das 
ganz gut vorstellen ne dass ich 

232
00:13:22,640 --> 00:13:26,240
sage ich habe ein Objekt was ich
nicht veränder, ich erweiter es 

233
00:13:26,240 --> 00:13:28,800
nur ich dekoriere es nur um 
quasi. 

234
00:13:29,280 --> 00:13:34,360
Zur Laufzeit in der Herstellung 
während ich es tue, quasi nicht 

235
00:13:34,360 --> 00:13:41,040
im Vorfeld entscheiden kann. 
Wie soll sie aussehen, ne, weil 

236
00:13:41,040 --> 00:13:44,840
ich ich sag ja auch nicht ich 
hab 5 mal die Pizza und 5 mal 

237
00:13:44,840 --> 00:13:48,320
die Pizza jetzt mach ich den lan
auf und jetzt nimmst du die oder

238
00:13:48,320 --> 00:13:51,600
nicht die sind in Stein 
gemeißelt sozusagen ne also ich 

239
00:13:51,600 --> 00:13:55,120
habe jetzt feste Objekte. 
Hawaii Pizza und Thunfisch, 

240
00:13:55,120 --> 00:13:58,080
Pizza und jetzt kommen die Leute
gut, ich hab noch 3 Hawaii, nimm

241
00:13:58,080 --> 00:14:01,240
davon ein oder nicht. 
Klar man wir gehen jetzt mal 

242
00:14:01,240 --> 00:14:03,280
davon aus, dass du sie frisch 
machst. 

243
00:14:03,280 --> 00:14:07,120
Ja, sondern du bestellst und 
kannst dann während der 

244
00:14:07,120 --> 00:14:09,680
Herstellung entscheiden wie sie 
aussehen soll und genau dafür 

245
00:14:09,680 --> 00:14:11,040
ist dieses Pattern halt. 
Super. 

246
00:14:11,600 --> 00:14:16,400
Ja, und du hattest es ja eben 
schon n bisschen gesagt, dass 

247
00:14:16,760 --> 00:14:19,920
man ja im Endeffekt auf der 
Karte sagen kann, OK, ich möchte

248
00:14:20,080 --> 00:14:22,080
also. 
Du siehst die Karte und sagst so

249
00:14:22,080 --> 00:14:24,560
ich möchte ne Hawaii Pizza, aber
es wär irgendwie ganz nett wenn 

250
00:14:24,560 --> 00:14:26,840
keine Ahnung ich ich möchte 
nicht den Schinken drauf haben, 

251
00:14:26,840 --> 00:14:30,000
ich mag total Ananas auf der 
Pizza aber ich möchte gerne 

252
00:14:30,000 --> 00:14:32,880
keinen Schinken drauf haben wär 
das auch möglich, dann kannst du

253
00:14:32,880 --> 00:14:36,960
das ja auch theoretisch machen 
aber und das ist ja genau der 

254
00:14:36,960 --> 00:14:41,320
Punkt, du hast jetzt zum 
Beispiel ne Hawaii Pizza aber du

255
00:14:41,320 --> 00:14:43,040
hast jetzt zum Beispiel nicht so
was wie ne Pizza. 

256
00:14:44,520 --> 00:14:49,000
Grundpizza, Ananas, grundpizza, 
Ananas, Schinken, Grundpizza, 

257
00:14:49,000 --> 00:14:51,400
Ananas, Schinken, Käse. 
Weißt du also du hast jetzt 

258
00:14:51,400 --> 00:14:56,040
nicht sozusagen da diese ganzen 
Permutationen auf der Karte, die

259
00:14:56,040 --> 00:14:59,440
du irgendwie vielleicht sag ich 
jetzt mal, herstellen könntest, 

260
00:14:59,600 --> 00:15:03,200
weil das wäre jetzt zum Beispiel
wieder so ne Art und Weise, das 

261
00:15:03,200 --> 00:15:05,520
Ganze in Vererbungen oder 
Klassen zu packen, dass du 

262
00:15:05,920 --> 00:15:10,000
sozusagen so Klassenexplosionen 
am Ende hast und sagst, du 

263
00:15:10,000 --> 00:15:13,520
machst von jeder Eventualität 
legst du dir halt eben irgendwie

264
00:15:13,520 --> 00:15:15,640
im Vorfeld schon mal ne Klasse 
an, damit du auf alles 

265
00:15:15,640 --> 00:15:19,120
vorbereitet bist. 
Ne, und dann hast du natürlich 

266
00:15:19,120 --> 00:15:21,640
irgendwann einfach nur noch 
riesen Wirrwarr und das ist halt

267
00:15:21,640 --> 00:15:25,040
so n bisschen der natürlich der 
Vorteil, wenn du sagst, du 

268
00:15:25,040 --> 00:15:28,880
kannst es halt dekorieren wie du
möchtest, ne aber Tino eine 

269
00:15:28,880 --> 00:15:35,120
Frage warum dekorierst du die 
Pizza und bildest sie nicht? 

270
00:15:41,680 --> 00:15:45,120
Also ja, man kann natürlich 
dabei also auch direkt an das 

271
00:15:45,120 --> 00:15:48,160
Factory Pattern denken. 
Ja, also dass du sagst in der 

272
00:15:48,160 --> 00:15:52,800
Herstellung ne, ich erstelle 
unterschiedliche Pizza Objekte 

273
00:15:54,560 --> 00:15:57,640
so, das ist ja haben wir auch 
drüber gesprochen, kann auch n 

274
00:15:57,640 --> 00:16:02,160
Anwendungsfall sein, wir haben 
auch zu dem Zeitpunkt. 

275
00:16:02,640 --> 00:16:04,160
Burger und Pizza vielleicht 
auch. 

276
00:16:04,160 --> 00:16:06,000
Ich weiß es gar nicht mehr. 
Es ging auf jeden Fall auch um 

277
00:16:06,000 --> 00:16:11,120
Essen genannt, warum dann 
Factory Pattern auch in Ordnung 

278
00:16:11,120 --> 00:16:14,960
ist oder ein Anwendungsfall ist 
als Analogie und das ist halt 

279
00:16:14,960 --> 00:16:20,080
genau die Frage, die man sich da
stellen muss, wie flexibel muss 

280
00:16:20,080 --> 00:16:24,000
ich zur Laufzeit sein, das ist 
eigentlich so der der 

281
00:16:24,000 --> 00:16:30,080
Kerngedanke ne und möchte ich 
nicht meine Basis verändern. 

282
00:16:30,920 --> 00:16:33,880
Ja. 
Das sind, das sind so die 

283
00:16:33,880 --> 00:16:38,080
unterschiedliche, also das eine 
ist ich modifizier, mein mein 

284
00:16:38,080 --> 00:16:41,000
Objekt und das andere ist auch 
so n bisschen ich modifizier 

285
00:16:41,000 --> 00:16:44,560
mein verhalten, wir bringen 
nachher ich hab noch n mir noch 

286
00:16:44,560 --> 00:16:46,880
n anderes Beispiel überlegt was 
so n bisschen technischer ist, 

287
00:16:46,880 --> 00:16:51,400
wo man das denn noch n bisschen 
genauer erkennen kann, da wo wo 

288
00:16:51,400 --> 00:16:55,640
man denn quasi sagen kann hier 
ist so die Grenze wo zum 

289
00:16:55,640 --> 00:16:57,760
Beispiel n Factorypad dann gar 
nicht mehr. 

290
00:16:58,080 --> 00:17:01,920
Sinnvoll ist, sondern es eher 
darum geht, n anderes Verhalten 

291
00:17:01,920 --> 00:17:05,359
aufzurufen und man da eher zum 
Beispiel sowas wie ein decorator

292
00:17:05,359 --> 00:17:07,359
Pattern verwenden sollte. 
Ich find. 

293
00:17:07,480 --> 00:17:09,920
Es auf jeden Fall lustig, dass 
du auf Factory pattern kommst, 

294
00:17:09,920 --> 00:17:12,400
weil das stimmt. 
Ich hab gerade tatsächlich an 

295
00:17:12,400 --> 00:17:15,000
Bilder Pattern gedacht, weil 
rein theoretisch könntest du ja 

296
00:17:15,000 --> 00:17:17,200
auch dich hinstellen und sagen, 
ich nehm zum Beispiel n Bilder 

297
00:17:17,200 --> 00:17:22,240
pattern um eventuell so ne Pizza
aufzubauen, ne ist aber sind 

298
00:17:22,240 --> 00:17:25,280
aber wie gesagt, man kann ja, 
das ist ja im Endeffekt genau 

299
00:17:25,280 --> 00:17:29,480
der Punkt, man kann für. 
Man kann immer unterschiedliche 

300
00:17:29,480 --> 00:17:31,760
Pattern theoretisch für das 
Gleiche verwenden. 

301
00:17:31,760 --> 00:17:36,480
Die Frage ist aber dann am Ende 
natürlich welches passt dazu ne 

302
00:17:36,480 --> 00:17:38,880
und das hatten wir auch immer 
schon in den Folgen bisher 

303
00:17:38,880 --> 00:17:43,120
gesagt, es ist meistens so, dass
du auf jeden Fall in der Lage 

304
00:17:43,120 --> 00:17:46,320
bist verschiedene Pattern zu 
nutzen für das gleiche Problem, 

305
00:17:46,320 --> 00:17:48,800
aber man muss halt immer n 
bisschen gucken, OK, welches 

306
00:17:48,800 --> 00:17:51,600
passt denn jetzt am besten? 
Manchmal passen aber auch 

307
00:17:51,600 --> 00:17:54,400
mehrere, das ist n bisschen 
abwägungssache, ne? 

308
00:17:55,600 --> 00:17:58,240
Lass uns das noch mal n bisschen
klarer machen bei der Pizza. 

309
00:17:58,240 --> 00:18:00,960
Nicht, dass da jetzt Verwirrung 
aufkommt, ne, also wenn ich 

310
00:18:00,960 --> 00:18:03,880
jetzt rein über die Herstellung 
der Pizza spreche, so wie ich es

311
00:18:03,880 --> 00:18:07,120
gerade getan hab, gut kann man 
sagen kann man argumentieren OK 

312
00:18:07,120 --> 00:18:10,960
da ist ne Factory oder n Bilder 
also n herstellungspattern ja n 

313
00:18:11,600 --> 00:18:17,840
Erschaffungspattern sinnvoller 
OK gehen wir aber mal wirklich 

314
00:18:17,840 --> 00:18:23,080
aufs Verhalten, zum Beispiel was
kostet mich die Pizza am Ende? 

315
00:18:23,080 --> 00:18:26,560
Ich möchte jetzt berechnen. 
Ja, ich glaube, das kennt jeder.

316
00:18:26,800 --> 00:18:28,960
Zum Beispiel, wenn man Pizza 
bestellt und man sagt, ich 

317
00:18:28,960 --> 00:18:33,840
möchte weitere Zutaten da drauf 
haben, dann sind da ja so Preise

318
00:18:33,840 --> 00:18:37,880
angegeben, ne, also keine Ahnung
was hatte ich hawaii, ich will 

319
00:18:37,880 --> 00:18:40,880
jetzt nur Ananas auf ne normale 
Schinkenpizza legen lassen, das 

320
00:18:40,880 --> 00:18:44,160
Kost mich oh Mann ich muss mir 
irgendwas ausdenken, keine 

321
00:18:44,160 --> 00:18:47,960
Ahnung ob das realistisch ist 1 
50 oder so extra ne für dich 

322
00:18:47,960 --> 00:18:52,440
Pizza für dich aufpasst würdest 
du nehmen ist n fairer Deal 

323
00:18:52,520 --> 00:18:56,000
super ist n fairer Deal. 
So, und wenn man sich sowas 

324
00:18:56,000 --> 00:18:58,560
vorstellt, da komm ich halt dann
wirklich in das decorator 

325
00:18:58,560 --> 00:19:01,200
pattern, dass ich sage, ja, 
berechne mir doch mal was die 

326
00:19:01,200 --> 00:19:05,280
Pizza kostet ne basispizza ja 
kostet immer das Gleiche, das 

327
00:19:05,280 --> 00:19:07,560
ist dein Objekt und das willst 
du auch nicht verändern, du 

328
00:19:07,560 --> 00:19:10,400
willst ja jetzt nicht zum 
Beispiel mit dem Factory Pattern

329
00:19:10,400 --> 00:19:16,040
sagen na ja gut, ich erzeuge mir
jetzt unterschiedliche, sag 

330
00:19:16,040 --> 00:19:20,880
schon pizzen, ja und? 
Den Preis muss ich immer neu 

331
00:19:20,880 --> 00:19:22,960
setzen, weil ich muss dann 
gucken, was drauf ist. 

332
00:19:22,960 --> 00:19:25,120
Ich errechne mir das und kann 
dann sagen, was die Pizza 

333
00:19:25,120 --> 00:19:28,960
kostet. 
So, das kann ich machen, wenn 

334
00:19:28,960 --> 00:19:31,200
ich ne klein. 
Also wenn ich ne kleine Variante

335
00:19:31,200 --> 00:19:34,000
hab ne wie wir es damals 
besprochen haben, du hast ne 

336
00:19:34,000 --> 00:19:37,880
Karte, da sind 5 Pizzen drauf, 
das sind jetzt 5 verschiedene 

337
00:19:37,880 --> 00:19:41,680
Objekte sozusagen und anhand mit
meiner Factory kann ich 

338
00:19:41,680 --> 00:19:44,320
entscheiden welche zurückkommt 
wenn ich mir jetzt aber 

339
00:19:44,320 --> 00:19:47,520
vorstelle. 
Jetzt möchte aber jemand Zusatz 

340
00:19:47,600 --> 00:19:51,440
zusätzliche Zutaten da drauf 
haben, dann fang ich ja nicht an

341
00:19:51,520 --> 00:19:53,880
in der Factory neue Objekte zu 
erzeugen. 

342
00:19:53,880 --> 00:19:57,520
Zu sagen Oh warte mal der der 
Kunde gestern ne der der war 

343
00:19:57,520 --> 00:20:00,880
richtig crazy, der wollte auf 
seine Hawaii Pizza einfach weiß 

344
00:20:00,880 --> 00:20:05,600
ich nicht ja Zwiebeln Sardinen 
das ist Crazy Sardinen da drauf 

345
00:20:05,600 --> 00:20:11,120
haben ja und dann warum soll ich
jetzt ne Pizza erschaffen ne 

346
00:20:11,120 --> 00:20:13,760
Hawaii Sardinien was keine 
Ahnung OK der war schlecht 

347
00:20:13,760 --> 00:20:18,640
sorry. 
Und hab halt quasi n komplett 

348
00:20:18,640 --> 00:20:21,520
neues Objekt dafür, sondern da 
bietet sich dann ja wirklich zu 

349
00:20:21,520 --> 00:20:24,880
an zu sagen, nee, ich habe meine
Hawaii Pizza und dieser Kunde 

350
00:20:24,880 --> 00:20:29,360
kriegt jetzt halt da sardin 
drauf und dann berechnen wir 

351
00:20:29,600 --> 00:20:33,440
also zur Laufzeit n anderes 
Verhalten und n neuen Preis und 

352
00:20:33,440 --> 00:20:37,200
da kommst du halt dann ganz 
schnell in die Bereiche wo denn 

353
00:20:37,200 --> 00:20:39,040
ein dekorator Pattern einfach 
besser ist. 

354
00:20:39,520 --> 00:20:42,640
Ja beziehungsweise wie du auch 
meintest, man kann es mit 

355
00:20:42,640 --> 00:20:44,320
verschiedenen Sachen lösen und 
das eine. 

356
00:20:44,800 --> 00:20:47,520
Verbietet nicht das andere. 
Ich kann ja ne Factory haben und

357
00:20:47,520 --> 00:20:49,280
darauf aber trotzdem noch 
aufbauen. 

358
00:20:50,240 --> 00:20:52,000
Richtig. 
Ich hoffe, das hat es mit dem 

359
00:20:52,000 --> 00:20:53,600
Preis noch mal n bisschen klar 
gemacht. 

360
00:20:54,160 --> 00:20:56,240
Ja, ist so. 
Also ich find es auf jeden Fall 

361
00:20:56,240 --> 00:20:59,880
fand es auf jeden Fall sehr gut 
erklärt, auch wenn jetzt zum 

362
00:20:59,880 --> 00:21:02,000
Beispiel wenn man sich jetzt 
hinstellen würde und sagen 

363
00:21:02,000 --> 00:21:04,080
würde, um das jetzt auch noch 
mal abzugrenzen, du hast n 

364
00:21:04,080 --> 00:21:09,360
decorator und du hast n Builder,
es sind halt erstmals sag ich 

365
00:21:09,360 --> 00:21:14,080
jetzt mal Design pattern aus 
verschiedenen. 

366
00:21:14,400 --> 00:21:16,920
Kategorien ist eines n 
Erzeugermuster, das andere ist n

367
00:21:16,920 --> 00:21:21,880
strukturmuster ne und also sein 
Decorator ist n strukturmuster 

368
00:21:21,880 --> 00:21:24,640
und der Bilder ist n 
erzeugermuster und genau beim 

369
00:21:24,640 --> 00:21:28,080
Decorator ist es ja so, dass man
sagt wie wir ja schon jetzt paar

370
00:21:28,080 --> 00:21:31,360
mal gesagt hatten, ich möchte 
das Verhalten eines Objektes zur

371
00:21:31,360 --> 00:21:34,320
Laufzeit erweitern, ne das heißt
ich hab jetzt n Objekt und 

372
00:21:34,320 --> 00:21:36,680
möchte da noch was da hinzufügen
das heißt du kannst wie gesagt 

373
00:21:36,680 --> 00:21:39,760
zur Laufzeit einfach dem Objekt 
noch ein bisschen mehr 

374
00:21:39,760 --> 00:21:42,400
dazugeben. 
Bei einem Builder ist es so, 

375
00:21:42,400 --> 00:21:44,720
dass du eigentlich nichts 
anderes möchtest, als relativ 

376
00:21:44,720 --> 00:21:48,160
bequem ein komplexes Objekt 
kontrolliert zu. 

377
00:21:48,520 --> 00:21:52,840
Also erstellen sozusagen ne und 
da ist es ja so, dass du 

378
00:21:52,840 --> 00:21:57,000
wirklich ein Objekt hast, ne was
du irgendwie erstellst auf 

379
00:21:57,000 --> 00:22:00,320
verschiedene Art und weisen. 
Es wird aber n relativ komplexes

380
00:22:00,320 --> 00:22:03,280
Objekt sein, bei einem Decorator
ist es halt so, dass du 

381
00:22:03,280 --> 00:22:05,840
eigentlich sagen wir mal n 
relativ simples Objekt hast. 

382
00:22:06,000 --> 00:22:10,400
Was du aber immer so je nach 
Gusto halt eben erweitern 

383
00:22:10,400 --> 00:22:12,800
kannst, ne. 
Genau. 

384
00:22:14,400 --> 00:22:16,800
Um das noch mal abzugrenzen, 
aber ich find das halt relativ 

385
00:22:16,800 --> 00:22:19,880
spannend, weil ich kann mir 
durchaus vorstellen, bei mir ist

386
00:22:19,880 --> 00:22:22,560
es zum Beispiel früher mal so 
gewesen, dass ich mir dachte, so

387
00:22:22,720 --> 00:22:26,200
OK, jetzt kommt das Pattern. 
Aha OK, ja versteh ich, jetzt 

388
00:22:26,200 --> 00:22:29,160
kommt das pattern aha ja OK 
versteh ich jetzt kommt das 

389
00:22:29,160 --> 00:22:32,240
pattern Moment warum kann man 
eigentlich für alles das Gleiche

390
00:22:32,240 --> 00:22:35,520
nehmen weil ne das ist finde ich
das macht die Sache weil du es 

391
00:22:35,520 --> 00:22:38,640
ist ja durchaus möglich mit der 
gleichen Analogie ähnliche 

392
00:22:38,640 --> 00:22:43,120
Pattern zu erklären. 
Aber diese kleinen Feinheiten, 

393
00:22:43,120 --> 00:22:45,120
die dahinter stecken, und das 
hat mich zum Beispiel früher 

394
00:22:45,120 --> 00:22:46,480
manchmal etwas verwirrt, weißt 
du? 

395
00:22:47,520 --> 00:22:51,400
Ja, ja, absolut verständlich. 
Ich find deswegen ist auch 

396
00:22:51,400 --> 00:22:54,320
wichtig, immer mit vielen 
Beispielen und Analogien zu 

397
00:22:54,320 --> 00:22:56,480
arbeiten und deswegen landen wir
auch immer beim Essen, weil da 

398
00:22:56,480 --> 00:22:59,480
kann glaub ich jeder mitreden, 
weil jeder liebt Pizza und wenn 

399
00:22:59,480 --> 00:23:07,440
nicht dann krass wow. 
Aber lass uns noch mal ein 

400
00:23:07,440 --> 00:23:11,440
technischeres Beispiel 
technischeres Beispiel auch das 

401
00:23:11,440 --> 00:23:15,040
Technischere was ist? 
So du meintest, du hast da noch 

402
00:23:15,040 --> 00:23:16,640
einen Zauber raus. 
Genau. 

403
00:23:16,800 --> 00:23:21,160
Und zwar lass uns mal an so ne 
nottifire klasse denken, ne. 

404
00:23:21,160 --> 00:23:25,200
Also wir haben jetzt irgendwie 
eine Software entwickelt und 

405
00:23:25,200 --> 00:23:28,160
müssen so Benachrichtigungen 
rausschicken und haben so nen 

406
00:23:28,480 --> 00:23:32,880
klassischen Nottifire eingebaut,
der e Mails versendet so damit 

407
00:23:32,880 --> 00:23:35,360
das ist unsere Basis. 
Ja also damit ging es los. 

408
00:23:36,560 --> 00:23:39,520
Und haben uns nichts weiter 
dabei gedacht, nicht irgendwie 

409
00:23:39,520 --> 00:23:44,160
an Pattern gedacht, weil es gibt
halt nur diesen ein Notifire und

410
00:23:44,160 --> 00:23:47,120
auch nur die Funktionalität oder
das Verhalten, dass E Mails 

411
00:23:47,120 --> 00:23:52,640
rausgeschickt werden. 
Und auf einmal heißt es dann, na

412
00:23:52,640 --> 00:23:55,760
ja, aber in dem und dem Team 
oder in der und der 

413
00:23:55,760 --> 00:23:59,280
Anwendungssache. 
Wär es halt nicht schlecht, wenn

414
00:23:59,280 --> 00:24:04,080
wir zum Beispiel wir nutzen, sag
ich mal als Slack auf Arbeit. 

415
00:24:04,080 --> 00:24:07,520
Ja und wir möchten auch, dass in
einen gewissen Channel 

416
00:24:07,520 --> 00:24:10,560
geschrieben wird. 
Ja so n klassisches Beispiel, 

417
00:24:10,560 --> 00:24:14,800
keine Ahnung, unsere Pipeline 
hat n Fehler geworfen im CIC 

418
00:24:14,800 --> 00:24:18,400
Detail ist irgendwas nicht am 
Ende integriert worden oder 

419
00:24:18,400 --> 00:24:20,560
nicht deployed worden, das 
wollen wir als Benachrichtigung 

420
00:24:20,560 --> 00:24:22,640
in so einem Team Channel haben. 
Als. 

421
00:24:22,640 --> 00:24:27,520
Beispiel ne. 
Oder was ist noch klassisch SMS?

422
00:24:27,840 --> 00:24:29,800
Ja, ich möchte ne 
Benachrichtigung aufs Handy 

423
00:24:29,800 --> 00:24:33,320
haben, von mir aus weiß nicht, 
dass das SMS für dich klassisch 

424
00:24:33,320 --> 00:24:37,960
ist, aber na ich find das also 
Steinzeit, also sagen wir mal du

425
00:24:37,960 --> 00:24:40,600
kriegst irgendwie so n das kennt
doch jeder, dass du so n Code 

426
00:24:40,600 --> 00:24:44,800
aufs Handy geschickt bekommst 
oder so OK touché ja ist OK, es 

427
00:24:44,800 --> 00:24:48,800
geht auf alles gut, pass auf, du
kriegst n Brief nach Hause so 

428
00:24:48,800 --> 00:24:52,880
jetzt kannst du Steinzeit sagen.
Ich schreib dir n Brief mit der 

429
00:24:52,880 --> 00:24:57,520
Benachrichtigung auf jeden Fall,
worauf ich hinaus möchte ist, 

430
00:24:57,600 --> 00:25:01,200
dass man ja dann in diese 
subklassen Hölle kommt, ne wie 

431
00:25:01,200 --> 00:25:04,400
du so schön meintest, weil du 
fängst ja jetzt nicht an und zu 

432
00:25:04,400 --> 00:25:07,200
sagen OK warte mal, warte mal. 
Wir haben jetzt so verschiedene 

433
00:25:07,200 --> 00:25:10,920
Nortifier ja OK warte mal ne das
ist nicht schlecht, da machen 

434
00:25:10,920 --> 00:25:14,520
wir jetzt, da machen wir, da 
machen wir Factory, ich greif 

435
00:25:14,520 --> 00:25:17,480
noch mal ich nehm das noch mal 
ne so dann haben wir ne. 

436
00:25:17,840 --> 00:25:22,640
E Mail notifire Slack, notifire,
Essen, Essen, Notifire, Brief, 

437
00:25:22,640 --> 00:25:26,640
Notifire und so kannst du ja 
anfangen. 

438
00:25:26,640 --> 00:25:29,040
Aber was ist, wenn jetzt die 
Leute sagen, na ja, warte mal, 

439
00:25:29,040 --> 00:25:32,400
warte mal, warte mal, aktuell 
wär es nicht schlecht wenn wir 

440
00:25:32,400 --> 00:25:35,360
zu der E Mail noch n Slack 
notifire hätten, also da die 

441
00:25:35,360 --> 00:25:39,920
Benachrichtigung kriegen das 
würden wir gerne genau. 

442
00:25:41,200 --> 00:25:43,360
Die sagen jetzt einfach, wir 
möchten das gerne aktivieren. 

443
00:25:43,360 --> 00:25:46,960
Ja OK, ich baue meine Factory in
e mail slack notifire ein. 

444
00:25:47,760 --> 00:25:51,280
Ja nee, machen wir noch, machen 
wir noch mal SMS auch noch dazu,

445
00:25:51,280 --> 00:25:55,000
weil SMS finden wir toll gut e 
Mail Slack SMS notifire 

446
00:25:55,040 --> 00:25:58,680
implementiert so und das da 
sieht man ja schon, wo soll das 

447
00:25:58,680 --> 00:25:59,920
hinführen? 
Du willst ja nicht für jede 

448
00:25:59,920 --> 00:26:03,200
Kombination jetzt ne Instanz 
erzeugen mit den gewissen 

449
00:26:03,200 --> 00:26:06,480
Eigenschaften gerade wenn du zum
Beispiel sagst ey ich möchte 

450
00:26:06,480 --> 00:26:08,800
bitte notifications an und 
ausschalten. 

451
00:26:08,800 --> 00:26:11,760
Können. 
Ja, du willst ja nicht auf alle 

452
00:26:11,760 --> 00:26:15,120
Individualitäten vorbereitet 
sein und da nutzt man dann 

453
00:26:15,120 --> 00:26:20,300
einfach n Decorator und sagt OK,
das Standardverhalten ist e 

454
00:26:20,300 --> 00:26:25,360
Mail, du willst SMS bau ich dir 
drum rum dein Standard notifie 

455
00:26:25,360 --> 00:26:28,680
ist der gleiche, nur zusätzlich 
zu der Funktionalität versende 

456
00:26:28,680 --> 00:26:31,560
ich noch ne SMS oder ne 
Nachricht auf dem Slack Channel 

457
00:26:31,840 --> 00:26:34,640
und da finde ich das ist n 
richtig klassischer 

458
00:26:34,640 --> 00:26:38,480
Anwendungsfall. 
Der wo das Decoratorpad dann 

459
00:26:38,480 --> 00:26:40,480
einfach so richtig seine Stärken
ausspielen kann. 

460
00:26:40,720 --> 00:26:42,080
Definitiv. 
Das ist ja auch das, was ich 

461
00:26:42,080 --> 00:26:47,600
vorhin so so meinte, dass man ja
theoretisch, wenn du diesen 

462
00:26:47,840 --> 00:26:50,320
Decorator zum Beispiel nicht 
nutzen möchtest, aber. 

463
00:26:51,440 --> 00:26:53,320
Das irgendwie anders lösen 
möchtest, kommst du relativ 

464
00:26:53,320 --> 00:26:55,520
schnell in so ne 
klassenexplosion, dass du halt 

465
00:26:55,520 --> 00:26:57,720
irgendwie alle Kombinationen 
permutationen. 

466
00:26:57,720 --> 00:27:01,160
Wie auch immer von den 
entsprechenden Möglichkeiten die

467
00:27:01,160 --> 00:27:05,040
du hast, irgendwie kombinierst 
ne und wenn du sagst, OK du hast

468
00:27:05,040 --> 00:27:07,640
2, dann hast du halt vielleicht 
nicht so viele Möglichkeiten, 

469
00:27:07,640 --> 00:27:10,520
aber je mehr es halt werden, 
desto mehr Klassen würdest du 

470
00:27:10,520 --> 00:27:13,520
haben und ich find das ist auch 
wieder mal n gutes Beispiel zu 

471
00:27:13,520 --> 00:27:19,280
sagen, du baust etwas. 
Was zum Beispiel eventuell in 

472
00:27:19,280 --> 00:27:22,400
Zukunft ne, also das ist halt 
immer genau so n bisschen das 

473
00:27:22,400 --> 00:27:25,520
was man so auch bei 
softwarearchitektur sich dann 

474
00:27:25,520 --> 00:27:29,200
überlegen kann, weil klar wir 
hatten über so Dinge gesprochen 

475
00:27:29,200 --> 00:27:31,920
wie jagny ne you ain't Gonna 
need it so nach dem Motto OK, 

476
00:27:32,400 --> 00:27:35,600
ist doch jetzt erstmal egal, du 
brauchst es gerade nicht und das

477
00:27:35,600 --> 00:27:39,040
ist so n Trade auf zwischen dem 
was. 

478
00:27:39,360 --> 00:27:41,680
Aber wahrscheinlich in Zukunft 
passiert. 

479
00:27:41,840 --> 00:27:43,360
Weißt du, dass du halt gucken 
musst? 

480
00:27:43,360 --> 00:27:46,880
OK, klar, du brauchst es nicht, 
also Bau jetzt zum Beispiel noch

481
00:27:46,880 --> 00:27:50,720
keinen Slack notifire, wenn du 
ihn noch nicht brauchst. 

482
00:27:50,720 --> 00:27:55,400
Das ist ja logisch, aber setz 
doch deine deine Software schon 

483
00:27:55,400 --> 00:27:58,720
mal so auf, dass angenommen 
sowas würde kommen, du es. 

484
00:27:59,520 --> 00:28:02,640
Relativ einfach erweitern 
kannst, ohne dass es hinterher 

485
00:28:02,640 --> 00:28:04,800
so n Mess wird. 
Weißt du, dass du hinterher 

486
00:28:04,800 --> 00:28:07,280
sagst, so, oh mein Gott, wo sind
wir hier gelandet? 

487
00:28:07,280 --> 00:28:12,000
Ne packst noch 5 notifier, die 
dann in den nächsten halben Jahr

488
00:28:12,000 --> 00:28:15,600
dazu kommen mit dran und denkst 
dir dann auf einmal oh Gott, wir

489
00:28:15,600 --> 00:28:18,960
haben aber hier völligen Scheiß 
gemacht ne das ist so finde ich 

490
00:28:18,960 --> 00:28:22,560
dieser kleine Unterschied 
zwischen man muss gucken wie man

491
00:28:22,560 --> 00:28:25,360
seine Software baut. 
Aber nicht das implementieren, 

492
00:28:25,360 --> 00:28:27,840
was man noch nicht braucht. 
Ne und das finde ich kann man 

493
00:28:27,840 --> 00:28:31,640
relativ gut auch mit solchen 
Patterns dann teilweise 

494
00:28:31,640 --> 00:28:34,800
gewährleisten, weil du halt 
sagen kannst, OK ich bau das so 

495
00:28:34,800 --> 00:28:41,840
auf und kann dann zukunftssicher
meine Software sozusagen 

496
00:28:41,840 --> 00:28:45,080
erweitern, wenn es denn sein 
muss, aber muss erstmal noch 

497
00:28:45,080 --> 00:28:48,400
nicht das implementieren was ich
noch nicht brauche, das ist 

498
00:28:48,400 --> 00:28:50,560
eigentlich immer ganz cool und 
der Vorteil auch von solchen 

499
00:28:51,200 --> 00:28:55,840
Patterns dann zum Beispiel. 
Genau, weil das decorator 

500
00:28:55,840 --> 00:28:59,560
Pattern ja auch wirklich dafür 
gut geeignet ist, weil du halt 

501
00:28:59,560 --> 00:29:02,800
deine basisimplementierung, 
deine Basisklasse ja nicht 

502
00:29:02,800 --> 00:29:05,760
modifizieren musst. 
Also du baust wirklich drumherum

503
00:29:06,000 --> 00:29:09,280
muss man natürlich auch gucken, 
dass das nicht ausufert, sag ich

504
00:29:09,280 --> 00:29:11,440
mal. 
Aber dann, da sieht man ja auch,

505
00:29:11,440 --> 00:29:13,720
wieso Pattern denn einfach 
wirklich sehr viel Struktur 

506
00:29:13,720 --> 00:29:15,200
reinbringen, also in den Code 
jetzt. 

507
00:29:15,680 --> 00:29:17,800
Genau. 
Also es ist im Endeffekt auf 

508
00:29:17,800 --> 00:29:22,160
jeden Fall NN super pattern um, 
ich sag mal dieses. 

509
00:29:22,480 --> 00:29:26,720
Schöne diesen schönen Satz. 
Man ist offen für Erweiterung 

510
00:29:26,960 --> 00:29:30,240
ne, aber geschlossen für 
Veränderungen so. 

511
00:29:30,480 --> 00:29:35,840
Ja, ja genau das Filter genau, 
aber dann haben wir jetzt quasi 

512
00:29:37,280 --> 00:29:41,520
so n zum Beispiel das Beispiel 
diesen Basisnottifire ne und wie

513
00:29:41,520 --> 00:29:43,040
du meintest You aint Gonna need 
it. 

514
00:29:43,040 --> 00:29:46,240
Das war einfach zu dem Zeitpunkt
genau das was gebraucht wurde 

515
00:29:46,240 --> 00:29:47,840
und deswegen gibt es halt nur 
das. 

516
00:29:48,000 --> 00:29:51,760
Jetzt hatte ich ja gesagt OKSMS 
Slag alles Mögliche. 

517
00:29:52,800 --> 00:29:55,680
Wie funktioniert denn das 
technisch jetzt da n decorator 

518
00:29:55,680 --> 00:29:58,880
Pattern einzubauen? 
Genau, also NN decorator 

519
00:29:58,880 --> 00:30:03,200
Pattern, wenn man sich das so 
grob überlegt, da brauchst du 

520
00:30:03,200 --> 00:30:06,400
ungefähr so 4 Klassen, ne also 
oder was heißt Klassen? 

521
00:30:06,400 --> 00:30:10,320
Also du brauchst 4 Konstrukte 
und zwar brauchst du einmal die 

522
00:30:10,320 --> 00:30:14,560
Komponente selber ne, also 
nennen wir es mal Komponente ne 

523
00:30:14,640 --> 00:30:17,760
zum Beispiel diesen Notifire. 
Das ist aber jetzt keine Klasse,

524
00:30:17,760 --> 00:30:20,480
das ist n Interface mehr oder 
weniger ne was n Interface ist 

525
00:30:20,480 --> 00:30:24,440
hatten wir glaub ich auch schon 
1 der ersten Pattern folgen 

526
00:30:24,440 --> 00:30:28,040
erklärt und in diesem Interface 
steht eigentlich nur die 

527
00:30:28,040 --> 00:30:31,440
Beschreibung drin was so n 
notifier können muss, 

528
00:30:31,440 --> 00:30:34,160
beispielsweise ne also was was 
was soll der können ne zum 

529
00:30:34,160 --> 00:30:36,960
Beispiel hat der dann die die 
Funktion notifier und zum 

530
00:30:36,960 --> 00:30:41,160
Beispiel noch sowas wie was weiß
ich ne Get Name hat n Namen 

531
00:30:41,160 --> 00:30:44,080
kannst du n Namen holen ne also 
dass du halt im Endeffekt nur 

532
00:30:44,080 --> 00:30:47,200
beschreibst. 
Wie n klassisches Interface was 

533
00:30:47,200 --> 00:30:51,920
kann denn theoretisch dieser 
also so ein Notifire, ne, also 

534
00:30:51,920 --> 00:30:54,640
jedes Objekt was ein Notifire 
ist, kann halt eben dieses 

535
00:30:54,640 --> 00:30:58,160
Notifire eben machen und wenn du
dann sagst, OK du hast dann aber

536
00:30:58,160 --> 00:31:01,280
von diesem, von dieser 
Komponente, diesen Notifire, 

537
00:31:01,440 --> 00:31:04,080
hast du dann logischerweise auch
wieder eine konkrete 

538
00:31:04,080 --> 00:31:07,160
Implementierung. 
In dem Fall dann zum Beispiel 

539
00:31:07,160 --> 00:31:09,960
Simple Notifier, ne 
beispielsweise simple Notifier 

540
00:31:09,960 --> 00:31:12,440
könnte jetzt einfach nur der E 
Mail notifier sein, ne, so 

541
00:31:12,440 --> 00:31:14,280
kannst es jetzt erstmal nennen 
wie du möchtest, kannst du auch 

542
00:31:14,280 --> 00:31:16,400
sagen, OK es ist der e Mail 
notifier, weil du auf jeden Fall

543
00:31:16,400 --> 00:31:20,240
sagst e Mail wird immer 
versendet, egal was ist ne so 

544
00:31:20,480 --> 00:31:22,920
also nennen wir es mal 
abstrakterweise etwas einfach 

545
00:31:22,920 --> 00:31:25,520
nur simple Notifier der auf 
jeden Fall ne e Mail rausschickt

546
00:31:25,600 --> 00:31:31,040
so ne und wenn du dann 
implementierst also die 

547
00:31:31,120 --> 00:31:37,680
Funktionalität notifier. 
Im simple Notifire in der 

548
00:31:37,680 --> 00:31:42,240
konkreten Komponente sozusagen. 
Dann wird auf jeden Fall ne e 

549
00:31:42,240 --> 00:31:44,360
Mail versendet und wenn du 
sagst, gib mir mal den Namen, 

550
00:31:44,360 --> 00:31:48,120
dann heißt es OK, der Name ist 
jetzt beispielsweise e Mail 

551
00:31:48,120 --> 00:31:51,680
notifire oder simple notifire 
wie du möchtest ne sagen wir mal

552
00:31:51,680 --> 00:31:54,080
jetzt, der simple Notifire gibt 
dann halt die e Mail notifire 

553
00:31:54,080 --> 00:31:56,480
als Name raushält, damit man 
noch mal so n bisschen den 

554
00:31:56,480 --> 00:31:59,840
kleinen Unterschied vielleicht 
so sehen kann ne und dann kannst

555
00:31:59,840 --> 00:32:02,160
du halt eben noch diesen 
Dekorierer. 

556
00:32:03,120 --> 00:32:06,080
Erstellen und der Dekorierer ist
im Endeffekt sagen wir mal ne 

557
00:32:06,080 --> 00:32:12,480
abstrakte Klasse die den das 
Interface wie hatten wir es 

558
00:32:12,480 --> 00:32:15,920
genannt Notifire also diese 
Komponente implementiert. 

559
00:32:15,920 --> 00:32:23,760
Ne, das heißt du hast sozusagen 
dann ein sagen wir mal notifire 

560
00:32:23,760 --> 00:32:29,440
decorator ne der dann sozusagen 
den Notifire implementiert. 

561
00:32:30,720 --> 00:32:34,800
Soweit so gut. 
Ja, bin bei dir sehr gut. 

562
00:32:35,360 --> 00:32:40,600
Und dann hast du aber in diesem 
Decorator, in dieser abstrakten 

563
00:32:40,600 --> 00:32:45,440
Klasse hast du ein Objekt 
hängen, was im Endeffekt der 

564
00:32:45,440 --> 00:32:51,200
Notifire ist, ne, also dieser 
dieses Interface notifire so. 

565
00:32:52,000 --> 00:32:55,040
Und jetzt kannst du halt, und 
das ist jetzt so n bisschen das,

566
00:32:55,040 --> 00:32:58,200
was dann oben drauf kommt, einen
konkreten Dekorierer ne. 

567
00:32:58,200 --> 00:33:00,560
Also wir hatten ja ne 
Komponente, ne konkrete 

568
00:33:00,560 --> 00:33:04,160
Komponente und jetzt haben wir n
dekorierer und einen konkreten 

569
00:33:04,160 --> 00:33:06,680
Dekorierer sozusagen 
Implementierung davon genau also

570
00:33:06,680 --> 00:33:10,320
wieder ne Implementierung. 
Vom Decorator sozusagen, von der

571
00:33:10,320 --> 00:33:14,480
abstrakten Klasse Decorator ne, 
also von dem Notifire Decorator.

572
00:33:14,480 --> 00:33:17,160
So, und das heißt, du kannst 
dann zum Beispiel deine E Mail 

573
00:33:17,160 --> 00:33:19,520
noch dekorieren, wie wir es ja 
gesagt hatten, wir werden 

574
00:33:19,520 --> 00:33:22,880
Geschenk zum Beispiel kannst du 
jetzt anstatt gelbes 

575
00:33:22,880 --> 00:33:26,040
Geschenkpapier nimmst du jetzt 
aber zum Beispiel diesen die SMS

576
00:33:26,040 --> 00:33:28,800
dazu oder anstatt rotes 
Geschenkpapier nimmst du dann 

577
00:33:28,800 --> 00:33:32,120
vielleicht aber beispielsweise 
die Slack Notification dazu und 

578
00:33:32,120 --> 00:33:35,760
dann kannst du halt sagen, OK 
pass auf, du hast halt in deinem

579
00:33:35,760 --> 00:33:38,320
konkreten Dekorierer ne, also in
deinem. 

580
00:33:39,920 --> 00:33:44,720
Sagen wir mal Slag decorate, 
also Slag notifier decorator 

581
00:33:44,800 --> 00:33:48,080
nenn ich das jetzt mal. 
Hast du dann die Möglichkeit zu 

582
00:33:48,080 --> 00:33:53,680
sagen, OK, ich muss ja ebenfalls
die Funktionen noti, also 

583
00:33:53,680 --> 00:33:56,160
Notifier und get Name 
implementieren muss ich ja auch 

584
00:33:56,160 --> 00:33:59,360
machen, nur dass dann im 
Endeffekt, dass du dann sagen 

585
00:33:59,360 --> 00:34:03,680
kannst, ich kann aber von meiner
von meinem simple Notifier die 

586
00:34:03,680 --> 00:34:08,239
notifier Funktion aufrufen, ne. 
Und kann dazu aber noch ne 

587
00:34:08,239 --> 00:34:12,080
andere Notifier aufrufen, also 
sozusagen in eine eigene 

588
00:34:12,080 --> 00:34:14,199
Implementierung. 
Also wird einmal ne e Mail 

589
00:34:14,199 --> 00:34:17,560
rausgesendet, weil du sozusagen 
von deiner ursprünglichen, von 

590
00:34:17,560 --> 00:34:20,480
deinem simple Notifier sozusagen
diesen notifier aufrufst und 

591
00:34:20,480 --> 00:34:23,719
zusätzlich, das ist die E Mail 
und zusätzlich eben noch dann 

592
00:34:23,719 --> 00:34:26,520
deine Slacknachricht verschickst
ne und genauso wenn du dann 

593
00:34:26,520 --> 00:34:29,040
sagst, gib mir mal den Namen von
diesem Notifier, dann steht da 

594
00:34:29,600 --> 00:34:32,880
zum Beispiel simple Notifier 
und. 

595
00:34:34,320 --> 00:34:36,520
Slack, Not die Fire oder so, 
dann weißt du auf jeden Fall OK,

596
00:34:36,880 --> 00:34:42,679
diese beiden Sachen werden hier 
also quasi gemacht, so wenn du 

597
00:34:42,679 --> 00:34:44,880
es jetzt in get Name verpackst 
ne. 

598
00:34:45,520 --> 00:34:51,440
So, ja, ja, genau das ist ja 
auch so n bisschen, dass der 

599
00:34:51,440 --> 00:34:54,159
Trick dabei, warum das so schön 
funktioniert. 

600
00:34:54,760 --> 00:34:56,960
Weil man kann sich das ja 
wirklich, wieso n. 

601
00:34:56,960 --> 00:34:59,440
Stapel am Ende vorstellen ne, 
also ich hab so meine 

602
00:34:59,440 --> 00:35:03,680
basisimplementierung ich Stapel 
halt immer weitere 

603
00:35:03,840 --> 00:35:08,080
Funktionalitäten drauf, das 
heißt die eigentliche 

604
00:35:08,080 --> 00:35:11,920
Funktionalität ist die gleiche, 
ich packe einfach nur noch mehr 

605
00:35:11,920 --> 00:35:15,600
drauf und ändere aber nicht die 
eigentliche Implementierung, da 

606
00:35:16,560 --> 00:35:21,280
zum Beispiel das Beispiel mit 
dem mit dem Preis für die Pizza.

607
00:35:22,160 --> 00:35:26,160
Ja, also wenn ich jetzt halt die
dieses decorator Pattern nutze 

608
00:35:26,160 --> 00:35:31,120
und mir quasi auch immer wieder 
ne Instanz zurückgebe von dem 

609
00:35:31,120 --> 00:35:33,840
wie es aktuell aussieht ne. 
Also ich hab die Basisinstanz, 

610
00:35:33,840 --> 00:35:37,600
die hab ich OK, dann sag ich 
also gehen wir mal davon aus wir

611
00:35:37,600 --> 00:35:39,520
haben ne Margarita, bauen wir 
das noch mal komplett auf das 

612
00:35:39,520 --> 00:35:42,720
Beispiel so da ist nichts drauf,
dann sag ich ja jetzt hab ich n 

613
00:35:42,720 --> 00:35:45,840
decorator Salami und ich 
Schinken gerade mal vorhin 

614
00:35:45,840 --> 00:35:47,920
Schinken. 
So, dann nehm ich jetzt ne 

615
00:35:47,920 --> 00:35:50,600
Implementierung von meinem 
Decorator und sag zum Beispiel 

616
00:35:50,600 --> 00:35:53,160
ist der Schinken decorator. 
Das ist n klassischer Name für 

617
00:35:53,160 --> 00:35:56,560
sowas. 
Ja so und da geb ich meine 

618
00:35:56,560 --> 00:36:02,440
Basispizza rein, das heißt der 
kennt jetzt meine Basispizza ne 

619
00:36:02,480 --> 00:36:06,800
und die hat zum Beispiel sowas 
wie Get Cost ne und da steht 

620
00:36:06,800 --> 00:36:10,440
keine Ahnung. 5€ sagen wir mal 
drin ja genau dann kann ich 

621
00:36:10,440 --> 00:36:13,680
sagen ich implementiere da ich 
ja das gleiche Interface 

622
00:36:13,680 --> 00:36:17,440
implementieren muss get cost. 
Sag ich. 

623
00:36:17,440 --> 00:36:21,760
OK, ich habe ja meine Basispizza
quasi als Eingabe bekommen. 

624
00:36:22,240 --> 00:36:24,560
Ja. 
Dann ruf ich davon einfach get 

625
00:36:24,560 --> 00:36:28,320
cost auf. 
Das sind 5€ und Addiere jetzt 

626
00:36:28,560 --> 00:36:32,560
was 1 50 dazu für den Schinken 
und das ist meine Get Cost für 

627
00:36:32,560 --> 00:36:37,280
Schinken n fairer Preis denk ich
ja so also sag ich dir einfach 

628
00:36:37,280 --> 00:36:39,360
ich nehm einfach wirklich die 
Implementierung, ich rühr die 

629
00:36:39,360 --> 00:36:41,800
nicht an die Pizza, die 
Standardpizza kostet weiterhin 

630
00:36:41,800 --> 00:36:45,280
5,00€. 
Ich bau nur drumherum, dass ich 

631
00:36:45,280 --> 00:36:50,480
jetzt Schinken drauf lege und 
sage plus 1 50 genau und gebe 

632
00:36:50,480 --> 00:36:52,880
das wieder zurück. 
Und das ist immer noch eine 

633
00:36:52,880 --> 00:36:54,680
Pizza. 
Ne, das ist halt das richtige. 

634
00:36:54,680 --> 00:36:57,920
Immer genau, genau, genau. 
Es ist immer noch die Pizza, nur

635
00:36:57,920 --> 00:37:01,320
dass ich jetzt noch die weiter 
dekoriert hab, das ist n schönes

636
00:37:01,320 --> 00:37:03,920
Wort, passt einfach auch bei 
Pizza ne man sagt ja ne Pizza 

637
00:37:03,920 --> 00:37:07,200
dekorieren, das kennt man ja 
könnten sie meine Pizza? 

638
00:37:07,200 --> 00:37:10,320
Vielleicht aber auch noch mit 
ein bisschen Tomaten dekorieren.

639
00:37:12,080 --> 00:37:14,040
Guter Punkt, dann legen wir 
jetzt noch Tomaten. 

640
00:37:14,040 --> 00:37:17,040
Auch jetzt haben wir die Pizza, 
wo schon Schinken drauf ist. 

641
00:37:17,040 --> 00:37:20,320
Und jetzt ruf ich den 
Tomatendekorierer nehm ich jetzt

642
00:37:20,320 --> 00:37:23,200
und erzeug ne Instanz davon, 
gebe jetzt aber nicht die 

643
00:37:23,200 --> 00:37:27,200
Basispizza rein, sondern schon 
da wo der Schinken drauf ist ne 

644
00:37:27,200 --> 00:37:30,920
und und so weiter und ich Stapel
das immer weiter, die Get Cost 

645
00:37:30,920 --> 00:37:33,840
gibt mir mittlerweile 650 zurück
wenn ich die Aufrufe und ich 

646
00:37:33,840 --> 00:37:38,960
sage plus 1€ so. 
Und geb das Objekt wieder 

647
00:37:38,960 --> 00:37:40,640
zurück. 
Und wenn jetzt jemand davon die 

648
00:37:40,640 --> 00:37:44,160
Get Cost aufruft, dann steht da 
halt was sind das denn 57 drin? 

649
00:37:44,240 --> 00:37:47,440
Genau und genau das ist der 
Punkt, ich kann es halt immer 

650
00:37:47,440 --> 00:37:52,280
weiter stapeln und immer mehr 
Funktionalität hinzupacken genau

651
00:37:52,320 --> 00:37:54,480
also trotzdem ist es am Ende 
meine Pizza. 

652
00:37:54,720 --> 00:37:57,360
Richtig also das wenn man jetzt 
sagt, zum Beispiel du hast ne 

653
00:37:57,440 --> 00:38:01,080
diese Basispizza ne und wie du 
meintest, du nimmst jetzt zum 

654
00:38:01,080 --> 00:38:04,160
Beispiel den Schinkendekorierer 
und gibst daraus natürlich 

655
00:38:04,160 --> 00:38:06,800
logischerweise wieder ne Pizza 
zurück aus dieser. 

656
00:38:07,120 --> 00:38:11,040
Aus der decorator Funktion der 
des Schinken Decorators und du 

657
00:38:11,040 --> 00:38:13,440
machst danach diese Tomate, dann
ist es ja nicht so, als würde 

658
00:38:13,440 --> 00:38:16,240
die Pizza sagen, OK, jetzt 
nehmen wir ne die Schinken 

659
00:38:16,240 --> 00:38:20,520
wieder runter und machen nur die
Tomate drauf, sondern wie du 

660
00:38:20,520 --> 00:38:24,800
meintest es wird gestapelt ne 
und das ist halt das das 

661
00:38:24,800 --> 00:38:28,320
interessante dabei, dass du halt
eben nicht sagst OK jetzt das 

662
00:38:28,320 --> 00:38:31,280
anstatt das sondern das und das 
so das heißt wenn du jetzt zum 

663
00:38:31,280 --> 00:38:33,440
Beispiel sagen würdest du machst
aber Schinken, decorator 

664
00:38:33,440 --> 00:38:35,120
Schinken, Decorator, Schinken, 
Decorator. 

665
00:38:35,840 --> 00:38:38,480
Tomatendecorator dann hast du 
natürlich dreimal Schinken drauf

666
00:38:38,480 --> 00:38:39,560
und einmal Tomate. 
So ne. 

667
00:38:40,560 --> 00:38:41,840
Ja. 
Genau. 

668
00:38:41,920 --> 00:38:44,480
Ja, gibt es auch. 
Manche Leute finden sowas cool, 

669
00:38:44,480 --> 00:38:49,320
so Doppel, Doppel, Schinken auf 
der Pizza oder so, keine Ahnung,

670
00:38:49,920 --> 00:38:56,000
genau das mal so als exaktes 
Beispiel Mhm, also im Prinzip 

671
00:38:56,400 --> 00:39:01,520
was passiert unter der Haube die
Methoden die ich ergänze in 

672
00:39:01,520 --> 00:39:05,040
meiner Implementierung durch 
meinen neuen Decorator ne da. 

673
00:39:05,840 --> 00:39:09,440
Die rufen am Endeffekt oder 
leiten am Endeffekt zu den 

674
00:39:09,440 --> 00:39:13,840
inneren Objekt weiter verwend 
die Funktionalität und Kapsel 

675
00:39:13,840 --> 00:39:17,920
noch draußen, wie du meintest, 
als wieso n Geschenkpapier noch 

676
00:39:18,080 --> 00:39:22,280
ne extra Logik drumherum und das
ist halt ne wunderbare Sache die

677
00:39:22,280 --> 00:39:25,920
sich echt in vielen Fällen gut 
einsetzen lässt und vor allem 

678
00:39:26,880 --> 00:39:30,080
gerade wenn es darum geht das 
zur Laufzeit ja zu entscheiden 

679
00:39:30,800 --> 00:39:37,320
auch sehr wie soll ich sagen. 
Straight und Linus also es ist 

680
00:39:37,320 --> 00:39:39,600
codetechnisch halt dann auch 
einfach schön gelöst. 

681
00:39:39,600 --> 00:39:42,800
Es ist erweiterbar, es ist 
skalierbar und das sind ja alles

682
00:39:42,800 --> 00:39:48,080
Faktoren, die man absolut möchte
in der Softwareentwicklung und 

683
00:39:48,080 --> 00:39:50,240
deswegen würde ich gern noch mal
auf so n paar Prinzipien 

684
00:39:50,240 --> 00:39:53,200
eingehen, die hinter diesen 
Pattern stecken. 

685
00:39:55,200 --> 00:39:58,560
Was du schon gesagt hast, war ja
dieses Open Close principle ne, 

686
00:39:58,560 --> 00:40:01,200
also offen gegenüber 
Erweiterungen oder oder offen 

687
00:40:01,200 --> 00:40:03,840
für Erweiterung und geschlossen 
für Veränderung. 

688
00:40:03,920 --> 00:40:06,720
Ja weil ich halt wie gesagt die 
Basispizza nicht modifiziere, es

689
00:40:06,720 --> 00:40:13,720
ist die Basispizza am Ende, dann
hatten wir ja gesagt warum nicht

690
00:40:13,720 --> 00:40:17,440
Factory in dem Fall weil mit 
Factory kann ich ja auch 

691
00:40:17,440 --> 00:40:21,200
unterschiedliche Pizzen erzeugen
ja ist richtig. 

692
00:40:21,760 --> 00:40:26,320
Aber an dem Punkt sagt man 
Komposition über Vererbung, 

693
00:40:26,320 --> 00:40:29,520
gerade weil es zur Laufzeit, 
also zur Runtime dann einfach 

694
00:40:29,520 --> 00:40:31,760
passiert. 
Ne, also ich möchte lieber 

695
00:40:31,760 --> 00:40:37,720
Objekte kombinieren als sie zu 
vererben, um dann so in diese 

696
00:40:37,720 --> 00:40:41,200
subklassen Explosion in die 
Subklassenhölle zu kommen. 

697
00:40:41,560 --> 00:40:44,160
Genau. 
Das sind so 2 Prinzipien, die da

698
00:40:44,160 --> 00:40:48,320
auf jeden Fall dahinter stecken.
Und ein drittes Fabi hast du 

699
00:40:48,320 --> 00:40:52,080
noch 11 was hinter dem Decorator
an sich noch steckt? 

700
00:40:52,560 --> 00:40:54,480
Single Responsibility zum 
Beispiel. 

701
00:40:54,480 --> 00:40:58,560
Das heißt, jede nenn, das 
Schicht, jede 

702
00:40:58,560 --> 00:41:02,320
Dekorierungsschicht macht halt 
nur eine Sache, ne. 

703
00:41:02,960 --> 00:41:05,040
Also du hast dann zum. 
Beispiel, Das stimmt ja. 

704
00:41:05,040 --> 00:41:08,600
Wenn du halt sagst, du hast, du 
willst halt Schinken drauflegen,

705
00:41:08,600 --> 00:41:11,840
ne mit dem Schinken decorator, 
dann passiert halt auch eben nur

706
00:41:11,840 --> 00:41:16,360
das ne. 
Also du gibst halt eben die 

707
00:41:16,360 --> 00:41:19,360
entsprechende Verantwortlichkeit
zu den entsprechenden 

708
00:41:19,360 --> 00:41:22,960
Decoratoren halt eben weiter, 
was natürlich wie wir auch 

709
00:41:22,960 --> 00:41:26,400
wissen, mittlerweile sehr sehr 
gut ist. 

710
00:41:26,400 --> 00:41:31,040
Für zum Beispiel auch die 
Testbarkeit eines einer 

711
00:41:31,040 --> 00:41:35,440
Software, beispielsweise ne. 
Ja, hilft also mit Single 

712
00:41:35,840 --> 00:41:39,680
Responsibility meinst du ja im 
Prinzip jetzt zum Beispiel n 

713
00:41:39,680 --> 00:41:43,080
Schinken Decorator wird auch nur
Schinken drauflegen, genau er 

714
00:41:43,080 --> 00:41:45,720
ist nur dafür verantwortlich 
Schinken auf die Pizza zu legen.

715
00:41:45,720 --> 00:41:49,280
Genau, also du hast keinen 
Hawaii Pizza decorator, das hast

716
00:41:49,280 --> 00:41:52,240
du nicht, sondern wenn du eine 
Hawaii Pizza haben kannst, dann 

717
00:41:52,240 --> 00:41:54,480
kannst du vielleicht so ne Art 
Funktion machen make Hawaii. 

718
00:41:54,880 --> 00:41:57,240
Ne wo dann zum Beispiel der 
Schinken Decorator aufgerufen 

719
00:41:57,240 --> 00:42:00,160
wird und wo dann zum Beispiel 
der ne Ananas Decorator 

720
00:42:00,160 --> 00:42:03,160
aufgerufen wird. 
OK, aber es gibt keinen Hawaii 

721
00:42:03,160 --> 00:42:06,080
decorator so. 
Weil dann könntest du wieder. 

722
00:42:06,160 --> 00:42:07,840
Ja, schon wieder eher den die 
Factory am Ende. 

723
00:42:07,840 --> 00:42:09,920
Genau das würde ich sagen, ich 
bestell ne Hawaii. 

724
00:42:09,920 --> 00:42:12,160
Richtig, das wäre die Factory 
und dann hättest du ja schon 

725
00:42:12,160 --> 00:42:14,240
vielleicht schon wieder so eher 
so ne Art Vererbung, dass du 

726
00:42:14,240 --> 00:42:17,120
sagst, du hast ne Basispizza und
du hast zum Beispiel ne Hawaii 

727
00:42:17,120 --> 00:42:21,040
Pizza und die Hawaii Pizza quasi
ist ja hat ja als Basisklasse 

728
00:42:21,040 --> 00:42:23,960
die logischerweise die 
Basispizza ne bedeutet, aber 

729
00:42:23,960 --> 00:42:27,200
dann wiederum wie du ja schon 
meintest, dass es am Ende ja 

730
00:42:27,200 --> 00:42:30,000
sehr fest und starr ist, weil du
musst diese Klassen alle schon 

731
00:42:30,000 --> 00:42:33,280
kennen, bevor du überhaupt in 
die Laufzeit sozusagen kommst, 

732
00:42:33,440 --> 00:42:35,120
ne? 
Keiner. 

733
00:42:36,800 --> 00:42:39,920
Ja, das ist eigentlich auch der 
große Vorteil, weswegen wir das 

734
00:42:39,920 --> 00:42:44,080
Pattern auch ausgewählt haben, 
dass du das Verhalten zur 

735
00:42:44,080 --> 00:42:48,240
Laufzeit anpassen kannst. 
Das ist der große Benefit 

736
00:42:48,240 --> 00:42:51,680
dahinter das der riesen 
Pluspunkt Ne und dass deine 

737
00:42:51,680 --> 00:42:53,840
Klassenstruktur nicht 
explodiert, das wären jetzt so 

738
00:42:53,840 --> 00:42:56,160
mal 2 Vorteile die mir da sofort
einfallen. 

739
00:42:56,240 --> 00:43:00,480
Genau, ich meine Nachteile. 
Da weißt du ja relativ schnell, 

740
00:43:02,080 --> 00:43:07,280
was das Ganze mit sich bringt. 
Du musst halt natürlich, du 

741
00:43:07,760 --> 00:43:10,560
musst halt gucken. 
OK, du hast logischerweise 

742
00:43:10,560 --> 00:43:12,560
irgendwie wieder ne Art 
Overhead, ne, weil du musst. 

743
00:43:12,720 --> 00:43:15,960
Wie gesagt, das besteht ja, wenn
du es ganz knapp machst, besteht

744
00:43:15,960 --> 00:43:19,120
es ja aus, ich sag mal 4 
Komponenten die du ja auf jeden 

745
00:43:19,120 --> 00:43:22,040
Fall irgendwie bringen musst. 
Du brauchst eine Komponente, du 

746
00:43:22,040 --> 00:43:24,160
brauchst ne konkrete Komponente,
du brauchst n decorator, du 

747
00:43:24,160 --> 00:43:27,200
brauchst n konkreten Decorator 
und für jeden Decorator. 

748
00:43:28,320 --> 00:43:30,520
Du kannst dann halt mehrere 
Decorator drauf packen, aber du 

749
00:43:30,520 --> 00:43:34,720
hast natürlich irgendwo immer, 
ich sag mal ne gewisse Art von, 

750
00:43:35,680 --> 00:43:38,520
nennen wir es mal Overhead, den 
du ja irgendwo implementieren 

751
00:43:38,520 --> 00:43:42,280
musst. 
Ist halt immer die Frage wohin 

752
00:43:42,280 --> 00:43:46,400
also wogegen dieser Overhead 
steht ne Mhm, weil wenn du jetzt

753
00:43:46,400 --> 00:43:48,160
zum Beispiel sagst ne, wir 
wollen halt eben keine 

754
00:43:49,040 --> 00:43:52,000
Subklassenexplosion haben, dann 
ist vielleicht die 

755
00:43:52,000 --> 00:43:56,160
Subklassenexplosion sozusagen 
halt eher noch der. 

756
00:43:56,640 --> 00:43:58,880
Schlimmere Overhead, den du an 
der Stelle hättest. 

757
00:43:59,280 --> 00:44:02,440
Aber da hängt es dann natürlich 
wieder logischerweise vom 

758
00:44:02,440 --> 00:44:06,800
Anwendungsfall drauf ab, was 
theoretisch noch ne Sache sein 

759
00:44:06,800 --> 00:44:09,840
kann. 
Bei den Nachteilen ist, dass es 

760
00:44:09,840 --> 00:44:12,720
eventuell dafür sorgen kann und 
da muss man n bisschen 

761
00:44:12,720 --> 00:44:17,000
aufpassen, dass die Reihenfolge 
der Dekorierer kann eventuell 

762
00:44:17,000 --> 00:44:20,600
das Verhalten beeinflussen, je 
nachdem in welcher Reihenfolge 

763
00:44:20,600 --> 00:44:23,240
etwas passiert. 
Da muss man dann n bisschen 

764
00:44:23,240 --> 00:44:25,680
gucken, ne? 
Also wenn du jetzt zum Beispiel 

765
00:44:25,680 --> 00:44:30,960
sowas hast wie ich, sag mal 
irgendwas, wenn du n decorator 

766
00:44:30,960 --> 00:44:34,160
nimmst für irgendwelche Gewinne 
oder so ne bei irgendeinem 

767
00:44:34,160 --> 00:44:38,640
Jahrmarkt spiel was auch immer 
und du dann quasi erst plus und 

768
00:44:38,640 --> 00:44:41,680
dann mal nimmst oder erst mal 
und dann plus so nach dem Motto 

769
00:44:41,680 --> 00:44:45,920
ne also wenn du es verdoppelst 
oder keine Ahnung nur 2 drauf 

770
00:44:45,920 --> 00:44:49,280
packst in welchem Kontext auch 
immer, dann kann es natürlich am

771
00:44:49,280 --> 00:44:51,520
Ende unterschiedliche 
Auswirkungen haben auf das 

772
00:44:51,520 --> 00:44:54,640
Ergebnis. 
Ja, absolut. 

773
00:44:55,120 --> 00:45:00,000
Und wenn du dann sagst, ich hab 
n unterschiedliches Ergebnis und

774
00:45:00,000 --> 00:45:05,680
fragst dich wieso oder woran hat
es die Link, dann ist das 

775
00:45:05,680 --> 00:45:07,520
Debugging. 
Kann dann halt auch sehr 

776
00:45:07,520 --> 00:45:12,440
anstrengend werden, weil du halt
am Ende ein Objekt hast, was 

777
00:45:12,440 --> 00:45:15,800
halt wie gesagt immer noch dein 
Basisobjekt so für die Software 

778
00:45:15,800 --> 00:45:19,200
ist. 
Und jetzt ist irgendwo in dieser

779
00:45:19,200 --> 00:45:23,320
Dekorierung ja über diese 
Iteration des Stacks n Fehler 

780
00:45:23,320 --> 00:45:26,240
reingekommen, weil irgendein 
Dekorator fehlerhaft ist. 

781
00:45:26,720 --> 00:45:30,000
Ja. 
Dann die Stelle zu finden, das 

782
00:45:30,000 --> 00:45:33,040
ist halt dann einfach 
anstrengender, weil es halt wie 

783
00:45:33,040 --> 00:45:37,400
gesagt alles aufeinander Stack 
gestapelt ist. 

784
00:45:37,400 --> 00:45:41,160
Ja, und natürlich auch so ne 
Initialisierung kann auf den 

785
00:45:41,160 --> 00:45:43,600
ersten Blick unübersichtlich 
wirken, wenn du. 

786
00:45:44,160 --> 00:45:48,960
Angenommen du übertreibst es 
halt völlig ja und hast jetzt 

787
00:45:48,960 --> 00:45:55,560
quasi sozusagen dein deine 5 
dekorateuren dekoratoren und du 

788
00:45:55,560 --> 00:46:01,200
gibst halt immer dekorateuren 
Dekorateure sagt Mal der so. 

789
00:46:01,760 --> 00:46:05,040
Und da gibst du halt in den 
Konstruktor New rein mit dem 

790
00:46:05,040 --> 00:46:07,800
Vorgänger quasi der im Stapel 1 
drunter liegt. 

791
00:46:07,920 --> 00:46:11,840
Der kriegt n New von dem der da 
drunter liegt und so weiter bis 

792
00:46:11,840 --> 00:46:16,240
am Ende beim letzten oder am 
allerersten Decorator New Base 

793
00:46:16,320 --> 00:46:20,640
Klasse sozusagen steht und du 
verschachtelst das halt so, das 

794
00:46:20,640 --> 00:46:22,880
sieht dann halt nicht schön aus 
und da fragt sich auch jeder was

795
00:46:22,880 --> 00:46:24,880
da los ist. 
So ne also das kann man auch 

796
00:46:24,880 --> 00:46:28,240
schöner lösen, aber im Prinzip 
ist das ja irgendwo die 

797
00:46:28,240 --> 00:46:30,320
Initialisierung am Ende. 
Ja. 

798
00:46:31,120 --> 00:46:35,920
Ja, also die kann also die du 
musst es halt so aufbauen und 

799
00:46:36,800 --> 00:46:40,600
das kann halt verwirrend sein. 
Trotzdem muss man sagen, wenn 

800
00:46:40,600 --> 00:46:44,880
man das ordentlich codet ja und 
strukturiert, dann habe ich auch

801
00:46:44,880 --> 00:46:47,840
ein sehr sauberes und 
erweiterbares Design am Ende mit

802
00:46:47,840 --> 00:46:52,320
diesem Pattern, was wirklich 
sehr flexibel ist, was 

803
00:46:52,320 --> 00:46:55,120
kombinierbar ist und vor allem 
wiederverwendbar, weil es ja 

804
00:46:55,120 --> 00:46:57,120
halt diese Eigenschaft zur 
Laufzeit hat. 

805
00:46:57,920 --> 00:47:01,960
Genau deswegen kann sich das für
flexible Systeme auf jeden Fall 

806
00:47:01,960 --> 00:47:05,840
lohnen. 
Definitiv also, wenn man sagt, 

807
00:47:05,960 --> 00:47:10,760
EY, ich möchte gerne Objekte zur
Laufzeit flexibel mit vielleicht

808
00:47:10,760 --> 00:47:15,280
zusätzlichen Funktionalitäten 
anreichern, ja dann ist auf 

809
00:47:15,280 --> 00:47:19,320
jeden Fall decorator gut, wenn 
man denn halt eben die 

810
00:47:19,320 --> 00:47:20,920
ursprüngliche Klasse nicht 
verändern möchte. 

811
00:47:20,920 --> 00:47:23,280
Ja, das ist. 
Ne tolle Sache. 

812
00:47:23,280 --> 00:47:26,960
Dafür ist der Decorator gut wird
zum Beispiel auch genutzt, ganz 

813
00:47:26,960 --> 00:47:29,760
gerne in so Logging System 
Caching Systemen, vielleicht 

814
00:47:29,760 --> 00:47:34,400
auch bei Middleware schichten, 
aber auch beispielsweise bei UI 

815
00:47:34,400 --> 00:47:36,360
Komponenten. 
Ne, dass du zum Beispiel sagst 

816
00:47:36,400 --> 00:47:38,640
ey du kannst ne das vielleicht 
kann man sich ganz gut 

817
00:47:38,640 --> 00:47:42,000
vorstellen, du hast irgendwo ne 
Komponente wo du sagst du 

818
00:47:42,000 --> 00:47:46,000
möchtest zum Beispiel ne gewisse
Funktionalität weil es einfach 

819
00:47:46,000 --> 00:47:48,320
nur ne Checkbox ist, möchtest 
aber zusätzlich vielleicht noch 

820
00:47:48,640 --> 00:47:52,240
weiß ich nicht noch was. 
Weiteres hinzufügen in diese 

821
00:47:52,240 --> 00:47:55,360
Checkbox ne, um sozusagen die 
Funktionalität dieser Checkbox 

822
00:47:55,360 --> 00:47:57,560
etwas zu erweitern, aber im 
Grunde genommen möchtest du, 

823
00:47:57,560 --> 00:48:02,080
dass die Checkbox weiter in der 
Checkbox bleibt ne und dann wie 

824
00:48:02,080 --> 00:48:04,640
gesagt, das sind so 
Möglichkeiten wo es halt ganz 

825
00:48:04,640 --> 00:48:08,440
gerne verwendet wird. 
Ja, absolut. 

826
00:48:08,440 --> 00:48:11,040
Und da kann man dann die Stärken
auf voll und ganz ausspielen. 

827
00:48:12,720 --> 00:48:15,800
Ja, ich glaub das war es zu dem 
Pattern, es ist n bisschen 

828
00:48:15,800 --> 00:48:19,920
komplexer schon. 
Aber, liebe Zuhörer, liebe 

829
00:48:19,920 --> 00:48:23,960
Zuhörer, falls du Fragen dazu 
hast, schreib uns gerne, dann 

830
00:48:23,960 --> 00:48:27,040
werden wir sie gerne 
beantworten, falls irgendwas 

831
00:48:27,040 --> 00:48:30,360
nicht ganz so klar war, dann 
werden wir da natürlich noch mal

832
00:48:30,360 --> 00:48:32,400
nachlegen. 
Genau. 

833
00:48:32,880 --> 00:48:35,480
Ja. 
Es ist natürlich immer ein 

834
00:48:35,480 --> 00:48:39,760
eventuell eine Herausforderung, 
Code mit den Worten zu erklären,

835
00:48:39,760 --> 00:48:43,280
deswegen auch die Analogien. 
Aber Liebe zuhören, lieber zur, 

836
00:48:43,360 --> 00:48:45,640
schreib uns doch gerne auch, 
wann du das letzte Mal zum 

837
00:48:45,640 --> 00:48:47,200
Beispiel n decorator Pattern 
angewendet hast. 

838
00:48:48,080 --> 00:48:51,360
Welchen Anwendungsfall du dafür 
zum Beispiel hattest. 

839
00:48:51,840 --> 00:48:56,400
Und dann kommen wir da auf jeden
Fall gerne in den Austausch, 

840
00:48:56,400 --> 00:48:57,840
entweder über die Mail oder auf 
n. 

841
00:48:57,840 --> 00:49:00,880
Discord beispielsweise Social 
Media geht auch such dir was 

842
00:49:00,880 --> 00:49:04,040
aus, die Links zu allen 
Plattformen sind unten in den 

843
00:49:04,040 --> 00:49:06,640
Shownotes, genauso wie ein 
kleiner Spendenling. 

844
00:49:06,640 --> 00:49:09,920
Wenn du sagst, ey Mensch, das 
ist cool, der Coding Buddies 

845
00:49:09,920 --> 00:49:13,360
Podcast, der bringt mir was, den
hör ich gerne und regelmäßig und

846
00:49:13,360 --> 00:49:16,000
ich geb den beiden jetzt mal n 
bisschen was zurück, würde uns 

847
00:49:16,000 --> 00:49:20,000
mega freuen. 
Und ansonsten, wenn du sagst, 

848
00:49:21,200 --> 00:49:24,800
nee, mach ich nicht, weil man 
hat ja seine Gründe, dann lass 

849
00:49:24,800 --> 00:49:27,480
doch aber wenigstens ne kleine 
Bewertung da für den Podcast. 

850
00:49:27,480 --> 00:49:29,360
Das würde uns auch mega freuen 
oder empfehlen den Podcast 

851
00:49:29,360 --> 00:49:34,240
einfach weiter, das ist genauso 
viel wert und ansonsten würd ich

852
00:49:34,240 --> 00:49:37,120
sagen Tino vielen Dank für diese
Folge mal wieder. 

853
00:49:37,200 --> 00:49:40,400
Auch danke an dich, Fabi. 
Und ich würde sagen, wir hören 

854
00:49:40,400 --> 00:49:41,600
uns in der nächsten Folge 
wieder. 

855
00:49:42,000 --> 00:49:45,040
Bis dahin deine Korriganz 
gemeinsam. 

856
00:49:45,040 --> 00:49:48,280
Besser also. 
Da ziemlich ob ich ob ich Pizza.

857
00:49:48,400 --> 00:49:53,600
Habe ich keine. 
Ahnung, Pizza, Pizza komm wir 

858
00:49:53,600 --> 00:49:55,120
gehen, wir gehen jetzt erstmal 
Pizza bestellen.

