Spezielle Schnittstellen scheinen eine gute Möglichkeit zu sein, die optionalen Funktionen in einer domänenspezifischen Typhierarchie bereitzustellen. Sie behindern jedoch die Verwendung von Dekorations- und Verbundmustern, was auch in dieser Art von Hierarchie üblich ist.
Insbesondere möchte wahrscheinlich niemand einen Dekorator / Verbund für jede mögliche Kombination dieser Schnittstellen implementieren. Daher implementieren sie häufig alle optionalen Schnittstellen und verwenden die Typprüfung, um die Anrufe selektiv weiterzuleiten, was den Zweck der getrennten Schnittstellen zunichte macht.
Eine Alternative, die das Java Collection-Framework verwendet, besteht darin, alle Operationen in den Basistyp aufzunehmen und sie einfach mit Dummy-Implementierungen zu füllen. Standardmethoden in Java 8 erleichtern diese Verwendung weiter.
In gewisser Weise fühlt sich dies wie die Debatte um nullbare Spalten in der Datenbankwelt an. Gibt es ein starkes Argument gegen den praktischeren letzteren Ansatz?