Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Geeignetes Pattern für zwei-Spieler-Spiel (https://www.delphipraxis.net/173164-geeignetes-pattern-fuer-zwei-spieler-spiel.html)

Jazzman_Marburg 10. Feb 2013 16:56

Geeignetes Pattern für zwei-Spieler-Spiel
 
Moin!
Ich bin gerade etwas begrifflich irritiert: Weiß zufällig jemand, wie man das Pattern nennt, welches zwischen dem GUI und dem Spielbrett steht und Züge von Usern an das Spielbrett weiter gibt und die verschiedenen Stati des Spielbretts entgegennimmt?
Um es konkret zu machen: Ich habe ein einfaches Zwei-Spieler-Spiel, welches auf einem Spielbrett gespielt wird. Die Spieler geben ihr Züge abwechselnd ab. Nun möchte ich das GUI von der eigentlichen Spiel-Logik (Spielbrett) trennen. D.h. das GUI soll nicht direkt auf die Spielklasse zugreifen, sondern die Usereingaben erst zu einer Schicht, die zwischen diesen beiden sitzt, senden. Handelt es sich bei dieser Zwischenschicht um einen Visitor oder Controler, oder etwas ganz anderem?
Hat jemand ein solches Pattern für diesen Zweck schon mal gebaut?
Ich finde einige Beschreibungen des MVC Modells -- aber ich findes es verwirrend, dass dort das Modell und das GUI direkt miteinander verknüpft sind (lesend und schreibend), so dass ich mich frage, wozu man dann noch einen Controler benötigt.

Zufällig ein Pattern-Experte anwesend?

Lieben Dank
Jazzman

Sir Rufo 10. Feb 2013 17:31

AW: Geeignetes Pattern für zwei-Spieler-Spiel
 
Schau dir mal das an http://de.wikipedia.org/wiki/MVVM

r2c2 10. Feb 2013 17:48

AW: Geeignetes Pattern für zwei-Spieler-Spiel
 
- MVC gibts in diversen Varianten und jeder versteht etwas (leicht) anderes darunter. Insbesondere variiert die Kopplung zwischen View und Controller und die Granularität des Modells.
- daneben gibts noch MVC-Varianten, die sich nicht mehr MVC nennen. Beispielsweise MVVM. Es gibt aber auch noch PAC und MVP und keine Ahnung was alles.
- Ja im "originalen" MVC kommunizieren M und V "direkt". Dir Frage ist aber was "direkt" nun heißt. Teilweise sind diese Kommunikationswege über Observer o.ä. realisiert.
- Wie schlimm diese direkte Kommunikation ist, hängt auch davon ab, wie das Modell aussieht. Das kann zum einen deine echte Geschäftslogik sein, aber auch quasi ein Teil der GUI-Schicht, die die Daten aus der Geschäftslogik weiter aufbereitet.
- Wichtig sind diese Patterns insbesondere für Leute, die Frameworks bauen, weil solche Patterns zum Kernkonzept eines Frameworks werden können.
- Man kann die Patterns auch händisch anwenden.
- Man sollte sich aber immer bewusst sein, dass diese Muster auch ihre Nachteile haben. Insbesondere können sie den Entwurf ziemlich schwerfällig machen.
- Ich finde es deshalb oft sinnvoller auf MVC u.ä. zu verzichten und GUI-Schicht und Applikationslogik ohne einen Controller zu trennen. D.h. die GUI kennt die Anwendungslogik aber nicht umgekehrt. Für die Kommunikation in die andere Richtung eignen sich Events. So ist die GUI zwar Abhängig von der geschäftslogik, aber das ist logisch eh fast immer der Fall. Nur den Umgekehrten Fall will man i.d.R. strikt vermeiden. Man will nicht die Applikationslogik ändern müssen, nur weil sich was an der Darstellung geändert hat. Wenn sich aber die Anwendungslogik ändert, kommt man fast eh nicht umhin die GUI zu ändern. Eine technische Entkopplung wird diese logische Kopplung nicht aufheben können und macht häufig nur den Entwurf komplizierter.
- Visitors sind etwas ganz anderes.


mfg

Christian

Jazzman_Marburg 10. Feb 2013 18:25

AW: Geeignetes Pattern für zwei-Spieler-Spiel
 
Zitat:

Zitat von Sir Rufo (Beitrag 1202809)

Interessant!
Vielen Dank.

Da ich erstmal nur mit Pattern rumspielen möchte, schließe ich mich dem dort genanntem Nachteil an:
"Für Anwendungen mit einfacher UI ist es Overkill."

Dennoch -- vielen Dank & Gruß
Jazzman

Jazzman_Marburg 10. Feb 2013 18:32

AW: Geeignetes Pattern für zwei-Spieler-Spiel
 
Zitat:

Zitat von r2c2 (Beitrag 1202810)
[snipp Teil I]
- Visitors sind etwas ganz anderes.

Hallo.
Volle Zustimmung zum Teil I:
Ich will einfach den Umgang mit Pattern lernen -- die Nachteile kommen dann, wenn ich weiß worum es überhaupt geht.

Zu den Visitors hätte ich dann doch gern mehr gewusst, als nur dass sie etwas anderes sind.

Vielen Dank
Jazzman

r2c2 10. Feb 2013 18:49

AW: Geeignetes Pattern für zwei-Spieler-Spiel
 
Zitat:

Zitat von Jazzman_Marburg (Beitrag 1202815)
Zu den Visitors hätte ich dann doch gern mehr gewusst, als nur dass sie etwas anderes sind.

- Visitor ist ein Entwurfsmuster, während MVC eher ein Architekturmuster ist, das sich auch als Entwurfsmuster anwenden lässt
- Die Haupt-Quelle ist das GoF-Book, das ist sehr empfeheln kann
- http://de.wikipedia.org/wiki/Besucher_(Entwurfsmuster)
- http://www.christian-rehn.de/tag/visitor/
- http://www.christian-rehn.de/2011/05/21/patterns/

mfg

Christian

Jazzman_Marburg 10. Feb 2013 18:56

AW: Geeignetes Pattern für zwei-Spieler-Spiel
 
Merci! :)

Jazzman


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz