Le interfacce dedicate sembrano essere un buon modo per esporre le funzionalità opzionali in una gerarchia di tipi specifici del dominio. Tuttavia, impediscono l'uso di decorator e pattern compositi, che è anche comune in questo tipo di gerarchia.
Soprattutto, probabilmente nessuno vuole implementare un decoratore / composito per ogni possibile combinazione di queste interfacce, quindi molto spesso implementa tutte le interfacce opzionali e usa il controllo del tipo per inoltrare selettivamente le chiamate, il che sconfigge lo scopo di separare interfacce.
Un'alternativa, che utilizza il framework Java Collection, è quella di includere tutte le operazioni nel tipo di base e semplicemente riempirle con implementazioni fittizie. I metodi predefiniti in Java 8 facilitano ulteriormente questo utilizzo.
In un certo senso, sembra che le colonne annullabili dibattano nel mondo del database. C'è una strong argomentazione contro l'approccio più pratico di quest'ultimo?