Hallo,
in einem Programm möchte ich File-Objekte miteinander vergleichen, die sich in einer Collection, z.B. HashSet<File> befinden. Der Anwender kann zuvor auswählen, nach welchen Kriterien verglichen werden soll, also etwa
- lastModified und size oder
- nur size oder
- lastModified, size und canRead
- usw.
Um die File-Objekte miteinander vergleichen zu können, überschreibe ich equals(). Dabei möchte ich dann nur diejenigen Kriterien für den Vergleich verwenden, die der User zuvor selektiert hat. Wie aber kann ich alle möglichen Kombinationen von Vergleichskriterien berücksichtigen? Bei nur zwei Kriterien könnte man vielleicht noch mit if-else-Blöcken die Variationen berücksichtigen. Doch wie geht das bei z.B. 8-10 möglichen Kriterien? Wie kann ich das umsetzen? Gibt es da irgendein Design-Pattern?
Viele Grüße,
Raphalon
in einem Programm möchte ich File-Objekte miteinander vergleichen, die sich in einer Collection, z.B. HashSet<File> befinden. Der Anwender kann zuvor auswählen, nach welchen Kriterien verglichen werden soll, also etwa
- lastModified und size oder
- nur size oder
- lastModified, size und canRead
- usw.
Um die File-Objekte miteinander vergleichen zu können, überschreibe ich equals(). Dabei möchte ich dann nur diejenigen Kriterien für den Vergleich verwenden, die der User zuvor selektiert hat. Wie aber kann ich alle möglichen Kombinationen von Vergleichskriterien berücksichtigen? Bei nur zwei Kriterien könnte man vielleicht noch mit if-else-Blöcken die Variationen berücksichtigen. Doch wie geht das bei z.B. 8-10 möglichen Kriterien? Wie kann ich das umsetzen? Gibt es da irgendein Design-Pattern?
Viele Grüße,
Raphalon