Saya ingin menyebutkan kasus tertentu di mana ia akan masuk akal untuk memiliki lebih sedikit, lebih serbaguna, metode: jika ada banyak polimorfisme, yaitu, banyak implementasi dari ini antarmuka ; terutama jika implementasi tersebut dalam kode yang dikembangkan secara terpisah yang tidak dapat diperbarui dalam sinkronisasi (antarmuka didefinisikan oleh perpustakaan).
Dalam hal itu, menyederhanakan pekerjaan menulis setiap implementasi jauh lebih berharga daripada kejelasan penggunaannya, karena yang pertama menghindari bug pelanggaran kontrak (dua metode menjadi tidak konsisten satu sama lain), sedangkan yang kedua hanya menyakitkan keterbacaan, yang dapat dipulihkan oleh fungsi pembantu atau metode superclass yang mendefinisikan getBalance
dalam hal charge
.
(Ini adalah pola desain, yang saya tidak ingat nama spesifik untuk: mendefinisikan antarmuka penelepon yang kompleks dalam hal yang ramah implementor minimal. Dalam Classic Mac OS antarmuka minimal untuk operasi menggambar disebut "bottleneck" tapi ini sepertinya bukan istilah yang populer.)
Jika ini bukan masalahnya (ada beberapa implementasi atau tepatnya satu) maka memisahkan metode untuk kejelasan, dan untuk memungkinkan penambahan sederhana dari perilaku yang relevan dengan biaya bukan nol charge()
, masuk akal.