Опять от меня ООП-шный вопрос. Взгляните на код:
interface Job {
String getName();
Location getLocation();
int getActionRadius();
boolean isInArea(Location otherLocation);
}
class ViewData {
.....
}
interface ViewDataBuilder {
ViewData buildFromJob(Job job);
}
Вот тут у нас Job, который предоставляет геттеры для своих данных и какое-то поведение, isInArea().
Для отображения данных в представлении необходимы методы доступа. Т.к. разработка ведется через тестирование (TDD), то Job является интерфейсом.
Суть топика: Мне ненравится, то, что Job это интерфейс, но его необходимо использовать в каком-то другом классе, на который пишется тест. С другой стороны интерфейс тут неудобно.
Может кто-нибудь видит какие-то варианты решения?