Моя мета - визначити контракти між класами.
Мені подобається набирати качок, і все, але я також хотів би визначити інтерфейс між різними шарами мого додатку, щоб чітко визначити, який метод викликати із зовнішнього, а які допоміжні методи, які не повинні використовуватися іншим шаром .
Наприклад, у Java я можу визначити інтерфейс Персистора з такими методами, як get () та save (), а потім визначити клас JdbcPersistor з усіма методами, які мені потрібні для збереження в базі даних. І, можливо, ще один RestPersistor з іншими методами збереження на віддаленому резервері.
Я не прошу інтерфейсів у Ruby, просто щоб знати, чи є акуратний спосіб зберегти це розрізнення. Мені подобається Рубі, але я працював лише над невеликими проектами.