Tujuan saya adalah mendefinisikan kontrak antar kelas.
Saya suka mengetik bebek dan semua tetapi saya juga ingin mendefinisikan antarmuka antara berbagai lapisan aplikasi saya untuk secara jelas menentukan metode mana yang dipanggil dari eksternal, dan mana yang merupakan metode aksesori yang tidak boleh digunakan oleh lapisan lain .
Sebagai contoh di Jawa saya dapat mendefinisikan antarmuka Persistor dengan metode seperti get () dan save () dan kemudian mendefinisikan kelas JdbcPersistor dengan semua metode yang saya butuhkan untuk bertahan di database. Dan mungkin RestPersistor lain dengan metode lain untuk menghemat pada restserver jarak jauh.
Saya tidak meminta antarmuka di Ruby, hanya untuk mengetahui apakah ada cara yang rapi menjaga perbedaan ini. Saya suka Ruby tetapi saya hanya bekerja pada proyek-proyek kecil dengannya.