Il mio obiettivo è definire i contratti tra le classi.
Mi piace la digitazione anatra e tutto, ma vorrei anche definire un'interfaccia tra diversi livelli della mia applicazione per definire chiaramente quali sono i metodi da chiamare dall'esterno e quali sono i metodi accessori che non dovrebbero essere usati da l'altro livello.
Ad esempio in Java posso definire un'interfaccia Persistor con metodi come get () e save () e quindi definire una classe JdbcPersistor con tutti i metodi che devo perseguire sul database. E forse un altro RestPersistor con altri metodi per il salvataggio su un server di ripristino remoto.
Non sto chiedendo interfacce in Ruby, solo per sapere se c'è un modo pulito per mantenere questa distinzione. Mi piace Ruby ma ho lavorato solo su piccoli progetti con esso.