Моя цель - определить контракты между классами.
Мне нравится Duck Typing и все, но я также хотел бы определить интерфейс между различными уровнями моего приложения, чтобы четко определить, какой метод вызывать из внешнего интерфейса, а какие - вспомогательные методы, которые не должны использоваться другим уровнем. ,
Например, в Java я могу определить интерфейс Persistor с помощью методов, таких как get () и save (), а затем определить класс JdbcPersistor со всеми методами, которые мне нужны для сохранения в базе данных. И, может быть, другой RestPersistor с другими методами для сохранения на удаленном restserver.
Я не прошу интерфейсы в Ruby, просто чтобы узнать, есть ли аккуратный способ сохранить это различие. Мне нравится Ruby, но я работал только над небольшими проектами.