In letzter Zeit habe ich häufiger ein bestimmtes Konstrukt gesehen. Ich dachte erst, das wäre eine „übliche Praxis in JavaScript“, aber nun sehe ich das gleiche in Java - es ist also wohl eher eine „übliche Praxis des Autors“
Das Muster zielt offenbar grob darauf ab, … Variablen zu vermeiden (!?), und zwar durch Funktionale Konstrukte:
void init(int parameter ) {
Supplier<Value> supplier = () -> {
if (parameter > 10) {
return Value(123);
}
return Value(456);
};
final Value value = supplier.get();
use(value);
}
Das ganze ist also analog zu
void init(int parameter ) {
Value value = null;
if (parameter > 10) value = new Value(123);
else value = new Value(456);
use(value);
}
oder, für die null
-Hasser sowas wie
void init(int parameter ) {
Value value = getValue(parameter);
use(value);
}
private static Value getValue(int parameter) {
if (parameter > 10) {
return Value(123);
}
return Value(456);
}
(man könnte also sagen, dass einfach statt einer privaten Methode ein lokaler Supplier
verwendet wird).
Ist das „Functional Programming Gone Wild“, oder übersehe ich etwas?