единственным методом получения фотографий: getPhotos()
Мы заимплементили его через Retrofit.
Дальше нам захотелось добавить кэширование.
Мы реализовали CachePhotoGateway (который так же имплементит PhotoGateway), и внутри возвращаем данные из БД, если запрос к серверу не удалось совершить.
Через IoC мы прокидываем реализацию с кэшированием.
Коллега открыл спор, и проблема вот в чем: теперь разработчик, который будет пользоваться нашим Gateway'ем, будет вызывать метод getPhotos, но при этом он не знает, что под коробкой происходит кэширование. И как он считает, правильнее назвать метод getPhotosWithCache или что-то в таком духе.
Вопрос: насколько это правильное замечание с точки зрения главной идеи Gateway'ев (ты получишь данные, а каким образом - не имеет значения)?
А указания на такое поведение в названии гейтвея не хватает? Имхо этого должно быть достаточно
Обсуждают сегодня