A menudo encuentro la necesidad de diseñar objetos con la funcionalidad configurable.configuración de java/diseño de paso de parámetro
Para ejemplificar, asuma que estoy creando un DateIterator
. La (s) opción (es) configurable (s) pueden ser si iterar el intervalo cerrado [start, end]
o el intervalo abierto [start, end)
.
- (1) El, en mi opinión, una solución poco elegante - limitado a una sola opción de configuración verdadero/falso
new DateIterator(boolean openInterval);
- (2) El typesafe forma de enumeración - típicamente una poco voluminoso
new DateIterator(Interval.OPEN_END);
- (3) El unconv entional intento - agradable, pero no demasiado sencillo
new DateIterator().openEnd();
- (4) El enfoque de la herencia - a menudo pasado por la ingeniería
new OpenEndedDateIterator();
A esto se agrega algunas alternativas que considero inferiores , como la configuración basada en enteros new DateIterator(Interval.OPEN_END);
o la configuración basada en la propiedad.
¿Hay algún otro enfoque? ¿Qué enfoque prefieres?