Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.java > #13008

Re: Countdown Timer Design

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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