Diskussion:Zustand (Entwurfsmuster)

message: Es geht um dieses Bild:
Die ConcreteStates sollten hier alle Methoden der FileState Klasse implementieren, die schliesslich als abstract deklariert wurde. Das entspricht auch dem State Pattern, da ja jeder der States das angebotene Verhalten implementieren muss. Meinungen? Sonst aender ich das mal.
--Bravebart 01:28, 21. Jan. 2009 (CET)
thread_title:  Klassendiagramm unter "Einfache Zustände" 

message: Auf die Übergänge zwischen den Zuständen wird im Artikel gar nicht eingegangen. In der englischen Version wird im Java-Beispiel dargestellt, dass dem Zustand der Kontext übergeben werden kann, so dass der Zustand selbst dem Kontext mitteilt in welchen Folgezustand dieser wechseln soll. In der deutschen Version sieht es aus als wäre der Kontext (im Beispiel "File") für die Übergänge verantwortlich. Sollte also der Kontext oder der Zustand die Übergänge definieren? Oder gehören die Zustandsübergänge gar nicht zum Entwurfsmuster? --Christian 10:39, 2. Feb. 2010 (CET)
replies: text: Die State-Objekte sind für den Zustandswechsel zuständig. So ist es auch in GoF:305 beschreiben. Und das ist ja auch gerade der Sinn dieses Musters: Der Kontext weiß von den Zuständen nur, wie man mit ihnen umgeht. Die ganze Arbeit machen die State-Objekte selbst. So kann man den Automaten ganz einfach ändern, indem man die Zustandsklassen ändert. Der Kontext muss nicht angefasst werden. Der wichtigste Satz im GoF-Book: "Encapsulate the concept that varies." --Der Hâkawâti ✉ 12:01, 2. Feb. 2010 (CET)

text: Ich schließe mich dem an. Die Klasse Common hat mit dem Entwurfsmuster überhaupt nichts zu tun und verschlechtert die Verständlichkeit, zumal sie im gewählten Beispiel keinen Einfluss auf die Schreibweise hat. Die Variante in der englischen Wikipedia sollte hier bevorzugt werden. Der Zähler ist nicht intuitiv aber für mich ok. --95.91.250.12 18:49, 2. Dez. 2013 (CET)

text: Vermutlich hast du recht. Darum solltest du ein besseres Beispiel bringen. WP:Sei mutig --Sebastian.Dietrich  ✉ 21:06, 4. Jun. 2015 (CEST)
thread_title:  Zustandsübergänge 

message: Was soll der Hinweis auf enums in diesem Zusammenhang bewirken?
Wie kann man damit Aufwand sparen?
Bitte dies etwas deutlicher herausarbeiten, oder den Hinweis entfernen. --195.212.29.171 13:49, 5. Mär. 2010 (CET)
thread_title:  Java 1.5 und enums 

message: Kann mir jemand erklären, wieso das Statepattern als Vorteil genannt bekommt, dass man einen neuen Zustand leichter einpflegen kann? Genau das Gegenteil ist doch der Fall! Wenn ich ein funktionierendes Programm um einen neuen Zustand mit einer neuen Methode erweitern will, muss ich im Gegensatz zu einer Verzweigungs-basierten Anwendung sämtliche Zustandsklassen und die Schnittstelle um die neue Methode erweitern. Es ist allenfalls sicherer, weil man so auf keinen Fall vergessen kann, sich bei jedem Zustand Gedanken zu machen, was beim Aufruf der neuen Aktion in einem der alten Zustände passieren soll. Aber aufwandsärmer ist sicherlich, die Verzweigung um eine Abfrage zu erweitern und den Rest so zu lassen. - Chris (Diskussion) 17:24, 11. Mai 2013 (CEST)
thread_title:  Angeblicher Vorteil bei Erweiterung? 

message: Ich denke, es wäre dem unerfahrenen Leser mit einem abstraktem Pseudocode-Beispiel mehr geholfen. Ich bin seit vielen Jahren Programmierer, ich beherrsche Java und mir war das State-Pattern schon bekannt, bevor ich den Artikel gelesen habe; trotzdem hatte ich ernsthafte Probleme, das Beispiel zu verstehen, besonders weil der Zustandsübergang hier mit einem ausgelagerten Aufrufzähler sehr gekünstelt ist und sich der mit vielen technischen Kommentaren gespickte Code über fast zwei Bildschirmseiten erstreckt. Hat jemand ernstliche Einwände, wenn ich ihn durch Pseudocode ersetze? - Chris (Diskussion) 17:31, 11. Mai 2013 (CEST)
thread_title:  Unübersichtliches Code-Beispiel 

message: Ich bin kein Java-Entwickler, aber mich hat stutzig gemacht, dass in firstLetterToUpper() das erste Zeichen sehr umständlich in eine Majuskel gewandelt wird, obwohl auch die substring()-Methode für den Rest zum Einsatz kommt. Ein Test bei http://www.compileonline.com/compile_java_online.php hat mir gezeigt, dass die Methode auch auf 
 public static String firstLetterToUpper(final String WORDS) { 
        return WORDS == null ? "" : WORDS.toUpperCase().substring(0,1) + WORDS.toLowerCase().substring(1);
    }
eingedampft werden könnte. Zur Veranschaulichung ist hier eine if-Bedingung statt ?-Operator sicher besser. Außerdem fällt auf, dass die Funktion alle Buchstaben außer dem ersten in Minuskeln umwandelt. Das ist weder aus dem Namen noch der Beschreibung ersichtlich.
Der Test am Ende veranschaulicht die Funktionsweise schlecht. Es sind alles korrekt geschriebene Wochennamen, somit hat firstLetterToUpper() überhaupt keinen Effekt. Dann sollte man lieber Strings wie "mONTag", "DIENstag" etc. verwenden. Und wenn das manch einem zu blöd ist, empfehle ich die Variante in der englischen Wikipedia. Dort macht die eine Funktion alles zu Minuskeln, die andere alles zu Majuskeln. Dann muss sich keiner mit diesem undurchsichtigen und unnützen Code herumschlagen. Damit sollte auch LWChris' Einwand an Gültigkeit verlieren. Der Code ist mir auch so schon verständlich und ich bin ja wie gesagt nicht mal Java-Entwickler. Deshalb überlasse ich auch die Überarbeitung lieber einem solchen.
P.S.: Warum heißt der Eingabeparameter eigentlich "WORDS", also ein Plural? (nicht signierter Beitrag von WikiVerarbeiter (Diskussion | Beiträge) 19:40, 11. Nov. 2013 (CET)
replies: text: Ich schließe mich dem an. Die Klasse Common hat mit dem Entwurfsmuster überhaupt nichts zu tun und verschlechtert die Verständlichkeit, zumal sie im gewählten Beispiel keinen Einfluss auf die Schreibweise hat. Die Variante in der englischen Wikipedia sollte hier bevorzugt werden. Der Zähler ist nicht intuitiv aber für mich ok. --95.91.250.12 18:49, 2. Dez. 2013 (CET)
thread_title:  Code unnötig komplex 

message: Ich bin immer wieder erstaunt, wie man unsinnige Beispiele aus der englischen Wikipedia entnehmen kann, die mich mehr an 'Obfuscating' erinnern.
GROß oder klein zu schreiben hat doch wahrlich nichts mit einem Zustand zu tun.
Das Beispiel ist so willkürlich, dass man es in die Tonne treten sollte. (nicht signierter Beitrag von 80.187.110.125 (Diskussion) 10:04, 4. Jun. 2015 (CEST)
replies: text: Vermutlich hast du recht. Darum solltest du ein besseres Beispiel bringen. WP:Sei mutig --Sebastian.Dietrich  ✉ 21:06, 4. Jun. 2015 (CEST)
thread_title:  Obfuscating 

message: Der Artikel sollte besser in Deutsch verfasst sein, nicht in außerirdischen Sprachen wie "C+-" oder "Jawa". Längere Fremdsprachen-Passagen bedingen grundsätzlich eine Übersetzung, damit der Artikel lesbar und verständlich bleibt. --2001:A62:1A29:C501:D7D7:97D:B277:259C 21:54, 16. Feb. 2024 (CET)
thread_title:  Deutsche Sprache