Antarmuka khusus tampaknya menjadi cara yang baik untuk mengekspos fitur opsional dalam hierarki jenis khusus domain. Namun, mereka menghambat penggunaan dekorator dan pola komposit, yang juga umum dalam hierarki semacam ini.
Terutama, mungkin tidak ada yang ingin mengimplementasikan dekorator / komposit untuk setiap kemungkinan kombinasi antarmuka ini, jadi lebih sering mereka mengimplementasikan semua antarmuka opsional dan menggunakan pengecekan tipe untuk meneruskan panggilan secara selektif, yang mengalahkan tujuan memiliki antarmuka yang terpisah.
Alternatif, yang menggunakan kerangka kerja Java Collection, adalah untuk memasukkan semua operasi dalam tipe dasar dan mengisinya dengan implementasi dummy. Metode default di Java 8 lebih lanjut memfasilitasi penggunaan ini.
Di satu sisi, ini terasa seperti perdebatan kolom nullable di dunia basis data. Apakah ada argumen yang kuat terhadap pendekatan yang lebih praktis?