Il mio obiettivo è definire contratti tra classi.
Mi piace digitare l'anatra e tutto il resto, ma vorrei anche definire un'interfaccia tra i 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 utilizzati dall'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 di cui ho bisogno per persistere sul database. E forse un altro RestPersistor con altri metodi per salvare su un restserver remoto.
Non sto chiedendo interfacce in Ruby, solo per sapere se esiste un modo pulito per mantenere questa distinzione. Mi piace Ruby ma ci ho lavorato solo su piccoli progetti.