1
00:00:00,000 --> 00:00:04,480
[MUSIC]

2
00:00:04,480 --> 00:00:09,994
In der Web-Entwicklung hört man oft Leute, die über das MVC-Framework und

3
00:00:09,994 --> 00:00:13,020
das MVVM-Framework sprechen und so weiter.

4
00:00:13,020 --> 00:00:14,460
Was genau sind diese Frameworks?

5
00:00:15,560 --> 00:00:20,050
Wie sind sie nützlich bei der Webentwicklung?

6
00:00:20,050 --> 00:00:22,257
Lassen Sie uns kurz darüber reden.

7
00:00:24,177 --> 00:00:26,688
In der Software-Engineering-Welt

8
00:00:26,688 --> 00:00:31,140
hört man oft Leute, die über Designmuster sprechen.

9
00:00:31,140 --> 00:00:37,470
Was genau sie bedeuten, ist, das Rad jedes Mal neu zu erfinden.

10
00:00:37,470 --> 00:00:43,880
Ein Entwurfsmuster ist eine gut dokumentierte Lösung für ein wiederkehrendes Problem.

11
00:00:43,880 --> 00:00:48,540
Sehr oft sehen Sie sich wiederholt ähnliche Probleme zu lösen.

12
00:00:48,540 --> 00:00:53,860
Wenn wir eine gut spezifizierte Dokumentation haben, wie man diese Probleme lösen kann,

13
00:00:53,860 --> 00:00:56,720
warum sollte man das Rad jedes Mal neu erfinden?

14
00:00:56,720 --> 00:00:59,140
Hier

15
00:00:59,140 --> 00:01:03,220
entsteht also das Designmusterkonzept des Software-Engineerings.

16
00:01:03,220 --> 00:01:08,420
Manchmal sehen Sie auch Leute, die sich auf diese als Architekturmuster beziehen.

17
00:01:08,420 --> 00:01:13,094
Zusammenfassend sind insbesondere Software-Entwurfsmuster eine wiederverwendbare

18
00:01:13,094 --> 00:01:17,706
Lösung für häufig auftretende Probleme, die in der Software gelöst werden.

19
00:01:17,706 --> 00:01:22,209
In diesem Zusammenhang hört man oft Leute, die über die vierköpfige Bande reden.

20
00:01:23,830 --> 00:01:29,217
Dies war eine Gruppe von vier Autoren, die dieses bahnbrechende Buch namens

21
00:01:29,217 --> 00:01:35,390
Design Patterns: Elemente wiederverwendbarer objektorientierter Software geschrieben haben.

22
00:01:35,390 --> 00:01:39,500
In diesem Buch identifizierten sie eine große Reihe von häufig verwendeten

23
00:01:39,500 --> 00:01:41,770
Entwurfsmustern in der Softwareentwicklung.

24
00:01:41,770 --> 00:01:48,030
Dies war eine der ersten gut dokumentierten Erkundung von Designmustern

25
00:01:48,030 --> 00:01:53,370
und wurde daher zum Goldstandard für alle, die in der

26
00:01:53,370 --> 00:01:58,410
Software-Engineering arbeiten, besonders besorgt über Design-Pakete.

27
00:01:58,410 --> 00:02:03,320
Dieses Software-Engineering-Muster ermöglicht es uns,

28
00:02:03,320 --> 00:02:06,706
Domänenlogik von der Benutzeroberfläche zu isolieren.

29
00:02:06,706 --> 00:02:11,827
Sie trennen also im Grunde die Ansicht des Benutzers der Informationen

30
00:02:11,827 --> 00:02:17,146
von der tatsächlichen Logik und wie die gespeicherten und manipulierten Informationen.

31
00:02:17,146 --> 00:02:22,280
Jetzt werden Sie dieses Konzept der Trennung von Bedenken immer und

32
00:02:22,280 --> 00:02:25,600
immer wieder in diesem Zusammenhang hören.

33
00:02:25,600 --> 00:02:30,290
Die Trennung der Bedenken erleichtert die unabhängige Entwicklung

34
00:02:30,290 --> 00:02:34,700
jedes dieser drei Teile unserer Anwendung und

35
00:02:34,700 --> 00:02:39,350
ermöglicht auch die Prüfung und Wartung dieser verschiedenen Teile.

36
00:02:39,350 --> 00:02:42,640
Jetzt können wir unsere gesamte Anwendung in drei Teile unterteilen,

37
00:02:42,640 --> 00:02:46,820
die Ansicht, die in erster Linie mit der Präsentation von Informationen für den Benutzer beschäftigt ist,

38
00:02:46,820 --> 00:02:51,930
das Modell, das den Domänenstatus und die Domänenlogik speichert und

39
00:02:51,930 --> 00:02:57,430
bietet auch die Möglichkeit,

40
00:02:57,430 --> 00:03:02,604
diesen Zustand aus dem Rest der Anwendung zu manipulieren und

41
00:03:02,604 --> 00:03:08,180
der Controller, der zwischen der Ansicht und dem Modell vermittelt.

42
00:03:08,180 --> 00:03:12,550
Wir werden über jeden dieser drei Teile als nächstes etwas ausführlicher sprechen.

43
00:03:12,550 --> 00:03:17,360
Im MVC-Framework verwaltet das Modell das Verhalten und die

44
00:03:17,360 --> 00:03:19,760
Daten der Anwendungsdomäne.

45
00:03:19,760 --> 00:03:25,433
Und das Modell reagiert auf Anfragen nach Informationen über seinen aktuellen Zustand.

46
00:03:25,433 --> 00:03:30,374
Wenn die Ansicht also gerendert werden möchte oder die Ansicht

47
00:03:30,374 --> 00:03:35,065
sich selbst aktualisieren möchte, kann sie das Modell abfragen, um Informationen zu erhalten

48
00:03:35,065 --> 00:03:38,703
, so dass es für den Benutzer angemessen gerendert werden kann.

49
00:03:38,703 --> 00:03:45,632
Das Modell reagiert auch auf Anfragen zur Änderung seines Zustands.

50
00:03:45,632 --> 00:03:48,574
Dies geschieht normalerweise über die Steuerung.

51
00:03:48,574 --> 00:03:51,712
In einem ereignisgesteuerten System

52
00:03:51,712 --> 00:03:57,810
kann das Modell auch so konfiguriert werden, dass Beobachter benachrichtigt werden.

53
00:03:57,810 --> 00:04:02,670
So können sich Betrachter selbst als Beobachter für das Modell registrieren.

54
00:04:02,670 --> 00:04:06,940
Wenn das Modell aktualisiert wird, werden die Ansichten automatisch ausgelöst, um

55
00:04:06,940 --> 00:04:10,960
sich basierend auf der Änderung des Modellstatus zu aktualisieren.

56
00:04:12,160 --> 00:04:17,290
Die Ansicht selbst befasst sich mit der Darstellung der Informationen an die Benutzer in einem

57
00:04:17,290 --> 00:04:23,690
Benutzeroberflächenelement so, dass sie sowohl die Darstellung von

58
00:04:23,690 --> 00:04:29,630
Informationen für den Benutzer erleichtert als auch dem Benutzer die Interaktion mit der Anwendung ermöglicht.

59
00:04:29,630 --> 00:04:33,970
Daher kann die Ansicht eine Darstellung des Modellstatus darstellen.

60
00:04:33,970 --> 00:04:38,662
So können Sie aus einem einzelnen Modell problemlos mehrere Möglichkeiten ableiten,

61
00:04:38,662 --> 00:04:43,449
diese Informationen dem Benutzer zu präsentieren, abhängig von der

62
00:04:43,449 --> 00:04:47,051
Größe des Ansichtsfensters.

63
00:04:47,051 --> 00:04:51,840
So ein kleines Ansichtsfenster, wie bei einer mobilen Anwendung,

64
00:04:51,840 --> 00:04:57,359
werden die Informationen auf eine andere Art und Weise dargestellt werden, im Gegensatz

65
00:04:57,359 --> 00:05:03,000
zu einem größeren Ansichtsport, der auf einem Desktop-Computer erleichtert wird.

66
00:05:04,248 --> 00:05:08,620
In einem MVC-Framework hat die gesamte Anzeige von Informationen eine

67
00:05:08,620 --> 00:05:13,490
Eins-zu-Eins-Korrespondenz mit dem Modellzustand.

68
00:05:15,850 --> 00:05:20,380
Das dritte Puzzleteil im MCV-Framework ist der Controller.

69
00:05:21,400 --> 00:05:26,750
Der Auftrag des Controllers besteht darin, Informationen aus der Ansicht zu erhalten.

70
00:05:26,750 --> 00:05:30,500
Jede durchgeführte Benutzerinteraktion wird also erfasst und

71
00:05:30,500 --> 00:05:35,720
dann an den Controller weitergegeben, um auf diese Benutzerinteraktionen zu reagieren.

72
00:05:35,720 --> 00:05:40,040
Und es ist die Aufgabe des Controllers, dann eine Änderung des Zustands

73
00:05:40,040 --> 00:05:46,870
des Modells zu initiieren, wenn es in dieser speziellen Situation erforderlich ist.

74
00:05:46,870 --> 00:05:51,940
Daher wird der Controller angemessen die Änderung des Status des Modells verursachen.

75
00:05:51,940 --> 00:05:55,940
Zusammenfassend kann der Controller Eingaben

76
00:05:55,940 --> 00:06:00,860
des Benutzers in Bezug auf die Benutzerinteraktionen akzeptieren, die stattgefunden haben, und

77
00:06:00,860 --> 00:06:06,935
dann wird er das Modell anweisen, den Zustand zu ändern.

78
00:06:06,935 --> 00:06:09,500
Gleichzeitig kann der Controller auch

79
00:06:09,500 --> 00:06:14,470
dazu führen, dass die Ansicht die Art und Weise ändert, wie die Informationen in der Ansicht angezeigt werden.

80
00:06:14,470 --> 00:06:19,230
Das ist der Grund, warum Sie in diesem Bild zwei Pfeile haben,

81
00:06:19,230 --> 00:06:24,000
die vom Controller gehen, einer zum Modell und der andere in Richtung der Ansicht.

82
00:06:25,060 --> 00:06:29,910
Manchmal hören Sie Leute, die über den Ansicht-Modellansatz der Modellansicht sprechen.

83
00:06:29,910 --> 00:06:33,490
Der Ansatz des Modellansichts-Ansichtsmodells ist in gewissem Sinne

84
00:06:33,490 --> 00:06:37,050
eine Ableitung des Model-View-Controller-Ansatzes.

85
00:06:37,050 --> 00:06:40,620
Manchmal hören Sie auch Leute, die sich darauf als

86
00:06:40,620 --> 00:06:41,768
Ansichtenbinderansatz für Modellansichten beziehen.

87
00:06:41,768 --> 00:06:45,502
Hier haben Sie das Modell, das die Geschäftslogik und

88
00:06:45,502 --> 00:06:47,311
die Daten für Ihre Anwendung darstellt.

89
00:06:47,311 --> 00:06:52,367
Aus dem Modell leiten Sie ein Ansichtsmodell ab, das den

90
00:06:52,367 --> 00:06:58,095
Teil der Informationen kapselt, der für das Rendern einer bestimmten Ansicht erforderlich ist.

91
00:06:58,095 --> 00:07:02,635
Das Ansichtsmodell ist also die Abstraktion der Ansicht, die

92
00:07:02,635 --> 00:07:07,395
die öffentlichen Eigenschaften und die verschiedenen verfügbaren Befehle zur Verfügung stellt.

93
00:07:07,395 --> 00:07:10,125
Dies stellt also eine deklarative Datenbindung zur Verfügung.

94
00:07:11,690 --> 00:07:16,300
In gewissem Sinne

95
00:07:16,300 --> 00:07:21,520
kann die Art und Weise, wie die Komponente und die Vorlagen in eckig implementiert werden, als

96
00:07:21,520 --> 00:07:27,250
eine Variante des Modellansichtsansatzes betrachtet werden.

97
00:07:27,250 --> 00:07:32,006
Mit diesem schnellen Verständnis des MVC und des MVVM-Frameworks

98
00:07:32,006 --> 00:07:36,686
lassen Sie uns jetzt mehr über eckige Dienste verstehen.

99
00:07:36,686 --> 00:07:43,099
( MUSIK)