Logic-Data-View-Controller-Service-Paradigma/Logic: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
(Die Seite wurde neu angelegt: „{{MVC:Menü}} =Definition (nach Kowarschick (MMProg))= Ein Logikmodul (engl. [[GlossaryWiki:Logic-Data-…“)
 
Keine Bearbeitungszusammenfassung
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{MVC:Menü}}
{{MVC:Menü}}
=Definition (nach [[Kowarschick (MMProg)]])=
==Definition ([[Kowarschick (MMProg)]])==
Ein [[Logic-Data-View-Controller-Service-Paradigma/Logic|Logikmodul]] (engl. [[GlossaryWiki:Logic-Data-View-Controller-Service-Paradigma/Logic|logic]] module)  
Ein [[Logic-Data-View-Controller-Service-Paradigma/Logic|Logikmodul]] (engl. [[GlossaryWiki:Logic-data-view-controller-service paradigma/logic|logic]] module)  
einer
einer
[[Logic-Data-View-Controller-Service-Paradigma|LDVCS]]-[[Anwendung]]
[[Logic-Data-View-Controller-Service-Paradigma|LDVCS]]-[[Anwendung]]
dient zur Realisierung der Anwendungslogik.
dient zur Realisierung der Anwendungslogik.


Die Anwendungslogik kann durch Benutzeraktionen beeinflusst werden. Derartige Aktionen werden [[Model-View-Controller-Service-Paradigma/Controller|LDVCS-Controllern]]  
Diese Module werden {{iAllg}} durch externe Ereignisse (wie  [[Model-View-Controller-Service-Paradigma/Controller|Controlleraktionen]] oder Änderungen am
an Logikmodule weitergeleitet.
[[Logic-Data-View-Controller-Service-Paradigma/Data|Datenbestand]]) aktiviert.


TBD!
Wenn ein Logikmodul aktiviert wurde, kann es sowohl den Inhalt von beliebigen [[Logic-Data-View-Controller-Service-Paradigma/Data|LDVCS-Datenmodulen]] modifizieren
 
(gegebenenfalls nachdem es zuvor lesend auf den aktuellen Datenbestand zugegriffen hat), als auch
Einem Service stehen in speziellen [[Model-View-Controller-Service-Paradigma/Model|MVCS-Modellen]] bzw.
beliebige [[Logic-Data-View-Controller-Service-Paradigma/Service|LDVCS-Services]] aktivieren.
[[Logic-Data-View-Controller-Service-Paradigma/Data|LDVCS-Datenmodulen]] i. Allg. [[Container]] (wie z.B. Arrays, ein Hash Maps, Objekte oder Änhliches) zur Verfügung, aus denen er Daten auslesen kann oder in die er Daten einfügen kann, sobald
diese verfügbar sind.
Eventuell stehen ihm auch noch spezielle Status-Modelle bzw. -Datenmodule zur Verfügung, in denen er Statusmeldungen
über den aktuellen Stand und den Verlauf der Bearbeitung der Serviceanfrage eintragen kann.


<gallery  perrow="3" heights="317px" widths="250px">
<gallery  perrow="3" heights="317px" widths="250px">
  Medium:LDVCS-Prozess 01.png|Der LDVCS-Prozess
  Datei:LDVCS-Prozess 01.png|Der LDVCS-Prozess
</gallery>
</gallery>


==Eigenschaften eines Service-Modules==
==Anmerkungen==
 
Ein Service bearbeitet eine Anfrage im Allgemeinen [[asynchron]]. Sobald ein Ergebnis in einem Modell oder Daten-Modul eingetragen wurde, kann dieses Modul den Aufrufer und beliebig viele andere Module mit Hilfe eines [[Signal]]s darüber informieren.
Sollte die aktuelle Anfrage nicht erfolgreich bearbeitet werden können, so kann der Service eine
entsprechende Fehlermeldung in ein spezielles Fehler-Modell bzw. -Datenmodul eintragen, das dann die übrigen
Module über die aufgetretenen Probleme informiert. Ebenso können anderen Module über
die erfolgreiche Übertragung von Daten in die Außenwelt mit Hilfe
von speziellen Status-Modellen bzw. -Datenmodulen informiert werden.
 
Ein Service kann mehrere Anfragen hintereinander bearbeiten und dabei auch auf frühere Ergnisse (die er z.B. in privaten [[Zustandsvariable]]n abgelegt hat) zugreifen. In manchen Situation ist es vorteilhaft, wenn dem Aufrufer spezielle Services
zur Verfügung stehen, die eingehende Service-Anfragen nicht parallel, sondern nacheinander abarbeiten.
 
=Anmerkungen=
 
Die Idee, Services als eigene Module zu betrachten, d.h. das MVC-PAradigma zu einem MVCS-Paradigma zu erweitern,
geht auf Joe Berkovitz zurück.<ref>[[Berkovitz, Joe (2006): An architectural blueprint for Flex applications]]</ref>
 
[[Model-View-Controller-Service-Paradigma/Service|MVCS-Services]] und
[[View-Controller-Logic-Service-Data-Paradigma/Service|VCLSD-Service]] unterscheiden sich nicht, wenn man davon absieht, dass
MVCS-Services aus Modelle zugreifen und LDVCS-Services auf Daten-Module.


Die Aufrufer unterscheiden sich allerdings: MVCS-Services werden von [[Model-View-Controller-Service-Paradigma/Controller|MVCS-Controllern]]
Die Idee, [[Model-View-Controller-Paradigma/Model|MVC-Modelle]] explizit in zwei Komponenten, nämlich 
aufgerufen und VCLSD-Service werden von [[View-Controller-Logic-Service-Data-Paradigma/Logic|VCLSD-Logik-Modulen]] aufgerufen.
[[Logic-Data-View-Controller-Service-Paradigma/Data|LDVCS-Datenmodule]] und
[[Logic-Data-View-Controller-Service-Paradigma/Logic|LDVCS-Logikmodule]] aufzuteilen geht auf Wolfgang Kowarschick<ref>[{{Quelle|Kowarschick, W.: Multimedia-Programmierung}}</ref> zurück.  


In MVC-Anwendungen übernehmen i. Allg. [[Model-View-Controller-Paradigma/Model|MVC-Modelle]] die Kommunikation mit der Außenwelt.
Der Vorteil dieser Aufteilung ist vor allem darin zu sehen, dass im [[Model-View-Controller-Paradigma|MVC-Paradigma]] nicht eindeutig festgelegt worden ist,
Es ist auch denkbar, dass [[Model-View-Controller-Paradigma/Controller|MVC-Controller]] diese Aufgabe übernehmen.
welche der beiden Module „[[Model-View-Controller-Paradigma/Model|Modell]]“ oder „[[Model-View-Controller-Paradigma/Controller|Controller]]“ eigentlich für die Realisierung der Anwendungslogik
zuständig ist. Man findet für beide Möglichkeiten zahlreiche Beispiele.


=Quellen=
==Quellen==
<references />
<references />
<ol>
<li value="2">[[Kowarschick, W.: Multimedia-Programmierung]]</li>
</ol>


=Siehe auch=
==Siehe auch==
* [[Model-View-Controller-Paradigma/Model|Model (MVC)]]
* [[Model-View-Controller-Paradigma/Model|Model (MVC)]]
* [[Model-View-Controller-Paradigma/Controller|Controller (MVC)]]
* [[Model-View-Controller-Paradigma/Controller|Controller (MVC)]]
Zeile 60: Zeile 36:


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

Aktuelle Version vom 22. September 2017, 16:49 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))

Ein Logikmodul (engl. logic module) einer LDVCS-Anwendung dient zur Realisierung der Anwendungslogik.

Diese Module werden i. Allg. durch externe Ereignisse (wie Controlleraktionen oder Änderungen am Datenbestand) aktiviert.

Wenn ein Logikmodul aktiviert wurde, kann es sowohl den Inhalt von beliebigen LDVCS-Datenmodulen modifizieren (gegebenenfalls nachdem es zuvor lesend auf den aktuellen Datenbestand zugegriffen hat), als auch beliebige LDVCS-Services aktivieren.

Anmerkungen

Die Idee, MVC-Modelle explizit in zwei Komponenten, nämlich LDVCS-Datenmodule und LDVCS-Logikmodule aufzuteilen geht auf Wolfgang Kowarschick[1] zurück.

Der Vorteil dieser Aufteilung ist vor allem darin zu sehen, dass im MVC-Paradigma nicht eindeutig festgelegt worden ist, welche der beiden Module „Modell“ oder „Controller“ eigentlich für die Realisierung der Anwendungslogik zuständig ist. Man findet für beide Möglichkeiten zahlreiche Beispiele.

Quellen

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

Siehe auch