Когда ты проектируешь объектно-ориентированное ПО, тебе нужно сначала определить интерфейсы исходя из того, что нужно пользователям и что они ожидают, или ты сначала сосредоточишься на внутренних структурах данных и деталях реализации? — ДейлиПреп