Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.java > #13246
| From | Patrick Roemer <sangamon@netcologne.de> |
|---|---|
| Newsgroups | de.comp.lang.java |
| Subject | Re: Strategy-Objekte |
| Date | 2019-05-03 12:32 +0200 |
| Organization | news.netcologne.de |
| Message-ID | <qah5c6$cgu$1@newsreader4.netcologne.de> (permalink) |
| References | <gj12cbF43i4U1@mid.individual.net> |
Responding to Christian H. Kuhn:
> Das riecht nach dem Strategy Pattern. Also etwa
>
> interface ResultToScore {
> public float score(Chessresult result);
> }
[...]
> Ich brauche aber gar kein Objekt, es würde mir reichen, wenn score()
> static wäre.
Ergänzend: Du kannst das natürlich auch basierend auf Methodenreferenzen
implementieren...
public static final class OnePoint {
private OnePoint() {}
public static float score(Chessresult result) {
switch(result) {
case WIN: return 1;
case DRAW: return 0.5F;
case LOSS: return 0;
default: throw new IllegalStateException();
}
}
}
...und dann "OnePoint::score" verwenden, wo ein ResultToScore benötigt
wird. Das Strategy-Pattern ist damit weniger deutlich erkenntlich, aber
das ist eher ein Feature als ein Bug - Patterns sind halt Workarounds um
Unzulänglichkeiten der Sprache...
Leider hat man damit immer noch keinen knackigen, atomaren Namen für die
Implementierung - statt "new OnePoint()" oder "OnePoint.INSTANCE" jetzt
halt "OnePoint::score". In Scala könnte man die Methode (oder Funktion)
onePoint() nennen und ins Package-Objekt packen.
Viele Grüße
Patrick
Back to de.comp.lang.java | Previous | Next — Previous in thread | Next in thread | Find similar
Strategy-Objekte "Christian H. Kuhn" <qno-news@qno.de> - 2019-05-02 22:31 +0200
Re: Strategy-Objekte Patrick Roemer <sangamon@netcologne.de> - 2019-05-03 10:58 +0200
Re: Strategy-Objekte Patrick Roemer <sangamon@netcologne.de> - 2019-05-03 12:32 +0200
Re: Strategy-Objekte Joerg Meier <joergmmeier@arcor.de> - 2019-05-03 13:37 +0200
Re: Strategy-Objekte Patrick Roemer <sangamon@netcologne.de> - 2019-05-03 14:42 +0200
Re: Strategy-Objekte "Christian H. Kuhn" <qno-news@qno.de> - 2019-05-03 19:13 +0200
Re: Strategy-Objekte Thomas Noll <-_tn_-@web.de> - 2019-05-03 17:58 +0000
Re: Strategy-Objekte "Christian H. Kuhn" <qno-news@qno.de> - 2019-05-03 20:58 +0200
Re: Strategy-Objekte "Christian H. Kuhn" <qno-news@qno.de> - 2019-05-03 19:05 +0200
csiph-web