Mi objetivo es definir contratos entre clases.
Me gusta escribir pato y todo, pero también me gustaría definir una interfaz entre las diferentes capas de mi aplicación para definir claramente cuáles son los métodos para llamar desde el exterior y cuáles son métodos accesorios que no deberían ser utilizados por la otra capa .
Por ejemplo, en Java puedo definir una interfaz Persistor con métodos como get () y save () y luego definir una clase JdbcPersistor con todos los métodos que necesito para persistir en la base de datos. Y quizás otro RestPersistor con otros métodos para guardar en un servidor remoto.
No estoy pidiendo interfaces en Ruby, solo para saber si hay una forma ordenada de mantener esta distinción. Me gusta Ruby pero solo trabajé en pequeños proyectos con él.