Hallo,
ich habe eine Klasse mit fünf int-Konstanten, die kombiniert werden können, woraus sich insgesamt 32 Kombinationen ergeben. Die Frage ist nun, ob man die API schlank halten und den Nutzer der API zu einer Verkettung mit binärem ODER zwingen sollte oder ob man diese Kombinationen auch als Konstanten in die Klasse aufnimmt, zumal 32 ja überschaubar sind.
In Code ausgedrückt sieht das dann so aus:
Erstere Variante ist bequemer zu schreiben und vermutlich leichter verständlich, denn binäre Operationen sind für viele ja doch etwas ungewohnt. Aber dafür ist die API-Doku halt mit 32 Konstanten weniger übersichtlich.
Was findet ihr besser?
ich habe eine Klasse mit fünf int-Konstanten, die kombiniert werden können, woraus sich insgesamt 32 Kombinationen ergeben. Die Frage ist nun, ob man die API schlank halten und den Nutzer der API zu einer Verkettung mit binärem ODER zwingen sollte oder ob man diese Kombinationen auch als Konstanten in die Klasse aufnimmt, zumal 32 ja überschaubar sind.
In Code ausgedrückt sieht das dann so aus:
Java:
setPermission(rwx); // mehr Konstanten
setPermission(r|w|x); // Verkettung mit binärem ODER
Erstere Variante ist bequemer zu schreiben und vermutlich leichter verständlich, denn binäre Operationen sind für viele ja doch etwas ungewohnt. Aber dafür ist die API-Doku halt mit 32 Konstanten weniger übersichtlich.
Was findet ihr besser?