Я читал Растущее объектно-ориентированное программное обеспечение, руководствуясь тестами от Стива Фримена и Нат Прайс и очень впечатлило. Я хочу принять идеи этой книги в проектах Rails с помощью RSpec, хотя ее примеры написаны на Java.
Основным предписанием этой книги является то, что мы должны имитировать интерфейсы вместо конкретных классов. Они говорят, что мы можем улучшить дизайн приложения, извлекая интерфейсы и называя их.
Но у Ruby нет синтаксиса, эквивалентного Java interface
. Как я могу использовать их методы для проектов Rails?
UPDATE
Например, на странице 126 авторы представили интерфейс Auction
для реализации метода bid
. Во-первых, они издевались над Auction.class
, чтобы выполнить тестовый проход, затем они внедрили класс Auction
в качестве анонимного внутреннего класса в классе Main
. Наконец, они извлекли новый конкретный класс XMPPAuction
из Main
(стр. 131-132).
Этот инкрементный подход - это суть этой книги, на мой взгляд.
Как я могу принять или подражать такой серии преобразований кода в разработке Ruby?