Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.java > #13008
| From | "Christian H. Kuhn" <qno-news@qno.de> |
|---|---|
| Newsgroups | de.comp.lang.java |
| Subject | Re: Countdown Timer Design |
| Date | 2016-07-17 15:49 +0200 |
| Message-ID | <dv1go6Fjau2U1@mid.individual.net> (permalink) |
| References | (4 earlier) <dut1paFhuo8U1@mid.individual.net> <nmblfr$1ek$1@newsreader4.netcologne.de> <duvo7iF6tgdU1@mid.individual.net> <Schachuhr-20160717014148@ram.dialup.fu-berlin.de> <chess-clock-20160717112841@ram.dialup.fu-berlin.de> |
Am 17.07.2016 um 12:35 schrieb Stefan Ram: > ram@zedat.fu-berlin.de (Stefan Ram) writes: > Die Modellklassen wurden nun um eine Klasse »Clock« > erweitert, die zwei Uhrwerke »Unit« enthält. > Damit kann sie eine vereinfachte Art von Schachuhr > imitieren. Warum sieht das bei dir soviel aufgeräumter auf als bei mir? :-) Ok, du hast die Zeitquelle jetzt auch noch aus Clock herausgezogen und in die Verantwortung des Benutzers, also des UI, gegeben. Kann man so machen. Es gibt ein Argument, das dagegen spricht. Ich bin der Auffassung, dass die Feststellung einer Zeitüberschreitung entweder in Unit oder in Clock gehört. Unit kann ein allgemeiner Timer sein, der über Zeitüberschreitung nichts zu wissen braucht, dann gehört der Überschreitungsalarm nach Clock. Deine Unit zählt die Zeit hoch, ich brauche eigentlich einen Countdown, das ist dann eine Zeile mehr, und dann kann man auch argumentieren, dass das Erreichen der 0 von Unit festgestellt werden muss. Geht beides, ich neige im Moment mehr dazu, das in Clock zu tun. Wenn ich aber die Zeitüberschreitung in Clock feststelle, kann ich das eigentlich nur machen, indem ich regelmäßig duration von beiden Unit abfrage. Nicht nur von der laufenden, weil ja die andere Uhr zwischen letzter Abfrage und letztem toggle die Zeit überschritten haben kann. Damit muss Clock eine eigene Vorstellung von now haben. Die Alternative wäre, dass das UI getaktet Clock.isFlagFallen(now()) aufrufen müsste. Hm. Bauch sagt nein ... Das wird eine grundsätzliche Design-Frage. Ich folge bislang dem Observer-Muster: Clock als Observable verwaltet die eigenen Zustände und benachrichtigt seine Observer über Änderungen. Das (G)UI ist dumm. Es trifft keine Feststellungen über Zustände und Übergänge, es stellt einfach dar, was es mitgeteilt bekommt. Indem du Clock derart vereinfacht hast, wird mehr Logik in das (G)UI verfrachtet. Die Frage, wie oft auf welche Zustandsänderungen überprüft wird, ist sehr abhängig von der Implementation von Clock. Im Moment mag das kein Problem sein. Sobald der volle Funktionsumfang einer Turnierschachuhr (mehrere verschiedene Bedenkzeitperioden, Zugzähler, Bronstein-Bedenkzeit, Editierfunktionen für den Schiedsrichter) implementiert wird, befürchte ich eine Verletzung der Kapselung. lg QNo
Back to de.comp.lang.java | Previous | Next — Previous in thread | Next in thread | Find similar
JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-14 01:09 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-14 18:26 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-14 19:47 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 00:08 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-15 22:04 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 22:53 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 23:09 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-15 23:44 +0200
Countdown Timer Design (was: JUnit Test von JButton: Action wird nicht erkannt) "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-16 23:44 +0200
Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 12:44 +0200
Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 15:49 +0200
Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 17:03 +0200
Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 15:59 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 14:59 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 16:06 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-19 18:59 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 22:35 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-20 13:00 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-23 20:36 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-23 23:15 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Wanja Gayk <brixomatic@yahoo.com> - 2016-07-19 23:02 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-20 12:33 +0200
GUI-Update über Swing-EDT (was: JUnit Test von JButton: Action wird nicht erkannt) "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 12:03 +0200
Re: GUI-Update über Swing-EDT Patrick Roemer <sangamon@netcologne.de> - 2016-07-15 22:43 +0200
Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 23:18 +0200
Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-16 15:24 +0200
Re: GUI-Update über Swing-EDT Patrick Roemer <sangamon@netcologne.de> - 2016-07-16 16:42 +0200
Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-16 23:05 +0200
Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 16:02 +0200
csiph-web