Model-View-Controller-Paradigma/Controller: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Kowa (Diskussion | Beiträge)
Kowa (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(23 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{MVC:Menü}}
{{MVC:Menü}}
[[Medium:MVC-Prozess 01.png|gerahmt|rechts|Der MVC-Prozess]]
==Definition ([[Kowarschick (MMProg)]])==
=Definition (nach [[Kowarschick (MMProg)]])=


([[Model-View-Controller-Paradigma|MVC]]-)[[Model-View-Controller-Paradigma/Controller|Controller]] dienen zur Steuerung einer [[Anwendung]], die nach den [[Model-View-Controller-Paradigma|MVC-Paradigma]] realisert wurde. Dazu manipuliert der Controller  
[[Model-View-Controller-Paradigma/Controller|Controller]]  
[[Model-View-Controller-Paradigma/Model|Modell]]-Objekte.
(engl. [[GlossaryWiki:Model-view-controller paradigm/controller|controllers]]) dienen zur Steuerung einer  
[[Model-View-Controller-Paradigma|MVC]]-, [[Model-View-Controller-Service-Paradigma|MVCS]]- oder
[[Logic-Data-View-Controller-Service-Paradigma|LDVCS]]-[[Anwendung]]. Dazu nimmt ein Controller Eingaben aus verschiedensten Quellen entgegen (z.B. Sensor-Daten oder Daten, die ein Benutzer über eine beliebige Benutzer-Schnittstelle wie eine Tastatur oder eine Maus eingibt) und leitet diese bereinigt und normalisiert an ein [[Model-View-Controller-Paradigma/Model|Modell]] bzw. – im Falle von LDVCS-Anwendungen – an ein
[[Logic-Data-View-Controller-Service-Paradigma/Data|Datenmodul]] weiter.


Im Allgemeinen wird die [[Anwendungslogik]] im Controler unf nicht im [[Model-View-Controller-Paradigma/Model|Modell]] implementiert.
Ein MVC- bzw. ein MVCS-Controller kann weitere Aufgaben übernehmen:


==Aufgaben eines Controllers==
* Umsetzung der Komponentenlogik
* Anforderungen, die vom Benutzer direkt oder mit Hilfe einer [[Model-View-Controller-Paradigma/View|View]] an einen [[Model-View-Controller-Paradigma/Controller|Controller]] weitergeleitet werden, werden von diesem aufbereitet und zur Bearbeitung an das [[Model-View-Controller-Paradigma/Model|Modell]] weitergereicht.
* Verarbeitung von Systemsignalen, wie z.B. einer Systemuhr (z.B. „Spielzeit ist abgelaufen“)
* Controller können auch Ereignisse verarbeiten, die nicht vom Benutzer, sondern von einem [[Model-View-Controller-Paradigma/Model|Modell]] oder einem (meist anderen) Controller initiiert werden (wie z.B. ein das Ereignis „Spielzeit ist abgelaufen“).
* Sofern es keine speiellen [[View-Controller-Logic-Service-Data-Logic-Paradigma/Logic|Logik-Module]] gibt, wird im Controller auch die Anwendungslogik realisiert (siehe [[View-Controller-Logic-Service-Data-Paradigma|VCLSD-Paradigma]]).


=Beispiele=
Ein MVC-Controller kann darüber hinaus noch eine Aufgabe übernehmen:
* Kommunikation mit externen Datenquellen (zum Zweck der Datensynchronisation)
 
<gallery  perrow="3" heights="317px" widths="250px">
Datei:MVC-Prozess 02.png|Der MVC-Prozess
Datei:MVCS-Prozess 01.png|Der MVCS-Prozess
Datei:LDVCS-Prozess 01.png|Der LDVCS-Prozess
</gallery>
 
==Anmerkungen==
[[Model-View-Controller-Paradigma/Controller|Controller von MVC-Anwendungen]] und
[[Model-View-Controller-Service-Paradigma/Controller|Controller von MVCS-Anwendungen]] unterscheiden sich nur in einer Hinsicht:
MVC-Controller könnten für die Kommunikation mit der Außenwelt zuständig sein, allerdings werden dafür
normalerweise [[Model-View-Controller-Paradigma/Model|Modelle]] eingesetzt. MVCS-Modelle sind dagegen nie
für die Kommunikation mit der Außenwelt zuständig. Diese Aufgabe übernehmen
[[Model-View-Controller-Service-Paradigma/Service|MVCS-Service-Module]].
[[Logic-Data-View-Controller-Service-Paradigma/Controller|Controller von LDVCS-Anwendungen]]
sind werder für die Lommunikation mit der Außenwelt noch für die Komponentenlogik zuständig. Für diese Aufgaben gibt es
[[Logic-Data-View-Controller-Service-Paradigma/Service|LDVCS-Service-Module]] bzw.
[[Logic-Data-View-Controller-Service-Paradigma/Logic|LDVCS-Logic-Module]].
 
==Beispiele==


Tastatur-Controller fangen Tastatur-Ereignisse ab und ermitteln, welches Zeichen der Benutzer mit der gewählten Tastenkombination eingegeben hat.
Tastatur-Controller fangen Tastatur-Ereignisse ab und ermitteln, welches Zeichen der Benutzer mit der gewählten Tastenkombination eingegeben hat.
Dies kann, wenn die zugehörige Programmiersprache dies nicht sauber unterstützt, sehr aufwendig sein,
Das so ermittelte Zeichen kann dann weiterverarbeitet werden.
da die Tastencodes nichts über die Zeichen aussagen, die auf der Tastatur aufgedruckt sind – die Zuordnung zwischen Tastencode
Die Ermittelung des vom Benutzre eingegebenen Zeichens kann, wenn die zugehörige Programmiersprache dies nicht sauber unterstützt (wie z.B.
und Tasteninhalt hängt vom gewählten Tastaturlayout ab. Das so ermittelte Zeichen kann dann weiterverarbeitet werden.
[[ActionScript 3]]), sehr aufwendig sein, da die Tastencodes nichts über die Zeichen aussagen, die auf der Tastatur aufgedruckt sind – die Zuordnung  
zwischen Tastencode und Tasteninhalt hängt vom gewählten Tastaturlayout ab.


Device-Controller fangen die Ereignisse von bestimmten [[Device]]s, wie USB-Geräten, Infrarot-Steuerungen, Mäusen etc. ab  
Device-Controller fangen die Ereignisse von bestimmten [[Device]]s, wie USB-Geräten, Infrarot-Steuerungen, Mäusen etc. ab  
Zeile 28: Zeile 51:
Etc. pp.
Etc. pp.


=Quellen=
==Quellen==
 
<ol>
*[[Kowarschick, W.: Multimedia-Programmierung]]
<li>{{Quelle|Kowarschick, W.: Multimedia-Programmierung}}</li>
</ol>


=Siehe auch=
==Siehe auch==
* [[Model-View-Controller-Service-Paradigma/Controller|Controller (MVCS)]]
* [[Logic-Data-View-Controller-Service-Paradigma/Logic|Logic]]
* [[View-Controller-Logic-Service-Data-Paradigma/Controller|Controller (VCLSD)]]
* [[Model-View-Controller-Paradigma]] (insb. die dort angegebenen Quellen)


[[Kategorie:MVC]]
[[Kategorie:MVC]]
[[Kategorie:Objektorientierte Programmierung]]
[[Kategorie:Glossar]]
[[Kategorie:Glossar]]

Aktuelle Version vom 22. September 2017, 12:53 Uhr

Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen nur teilweise:

Korrektheit: 4
(großteils überprüft)
Umfang: 3
(einige wichtige Fakten fehlen)
Quellenangaben: 4
(fast vollständig vorhanden)
Quellenarten: 4
(sehr gut)
Konformität: 4
(sehr gut)

Diese Bewertungen beziehen sich auf alle im nachfolgenden Menü genannten Artikel gleichermaßen.

Definition (Kowarschick (MMProg))

Controller (engl. controllers) dienen zur Steuerung einer MVC-, MVCS- oder LDVCS-Anwendung. Dazu nimmt ein Controller Eingaben aus verschiedensten Quellen entgegen (z.B. Sensor-Daten oder Daten, die ein Benutzer über eine beliebige Benutzer-Schnittstelle wie eine Tastatur oder eine Maus eingibt) und leitet diese bereinigt und normalisiert an ein Modell bzw. – im Falle von LDVCS-Anwendungen – an ein Datenmodul weiter.

Ein MVC- bzw. ein MVCS-Controller kann weitere Aufgaben übernehmen:

  • Umsetzung der Komponentenlogik
  • Verarbeitung von Systemsignalen, wie z.B. einer Systemuhr (z.B. „Spielzeit ist abgelaufen“)

Ein MVC-Controller kann darüber hinaus noch eine Aufgabe übernehmen:

  • Kommunikation mit externen Datenquellen (zum Zweck der Datensynchronisation)

Anmerkungen

Controller von MVC-Anwendungen und Controller von MVCS-Anwendungen unterscheiden sich nur in einer Hinsicht: MVC-Controller könnten für die Kommunikation mit der Außenwelt zuständig sein, allerdings werden dafür normalerweise Modelle eingesetzt. MVCS-Modelle sind dagegen nie für die Kommunikation mit der Außenwelt zuständig. Diese Aufgabe übernehmen MVCS-Service-Module.

Controller von LDVCS-Anwendungen sind werder für die Lommunikation mit der Außenwelt noch für die Komponentenlogik zuständig. Für diese Aufgaben gibt es LDVCS-Service-Module bzw. LDVCS-Logic-Module.

Beispiele

Tastatur-Controller fangen Tastatur-Ereignisse ab und ermitteln, welches Zeichen der Benutzer mit der gewählten Tastenkombination eingegeben hat. Das so ermittelte Zeichen kann dann weiterverarbeitet werden. Die Ermittelung des vom Benutzre eingegebenen Zeichens kann, wenn die zugehörige Programmiersprache dies nicht sauber unterstützt (wie z.B. ActionScript 3), sehr aufwendig sein, da die Tastencodes nichts über die Zeichen aussagen, die auf der Tastatur aufgedruckt sind – die Zuordnung zwischen Tastencode und Tasteninhalt hängt vom gewählten Tastaturlayout ab.

Device-Controller fangen die Ereignisse von bestimmten Devices, wie USB-Geräten, Infrarot-Steuerungen, Mäusen etc. ab und verarbeiten diese weiter.

Data-Input-Controller fangen die Daten, die ein Benutzer über eine View (wie z.B. ein HTML-Formular) eingibt, ab und verarbeiten diese weiter.

Etc. pp.

Quellen

  1. Kowarschick (MMProg): Wolfgang Kowarschick; Vorlesung „Multimedia-Programmierung“; Hochschule: Hochschule Augsburg; Adresse: Augsburg; Web-Link; 2018; Quellengüte: 3 (Vorlesung)

Siehe auch