Вы упомянули "правильную абстракцию". Ну, это правильно, только если интерфейс имеет смысл для более чем одного класса. Особенно если учесть, что вы извлекаете интерфейсы из конкретных классов, вы, вероятно, в конечном итоге получите методы в интерфейсе, которых там быть не должно. Это, конечно, если имеет смысл для самого интерфейса существовать в первую очередь.
Последнее, на что я хочу обратить внимание, это то, что ваши интерфейсы не выглядят особенно стабильными. Похоже, вы подразумеваете, что добавление методов к интерфейсам является для вас обычным делом. Я бы подверг сомнению абстракцию класса, когда контракт класса (то есть его интерфейс) настолько изменчив.
В общем, я не уверен, что немедленное предоставление интерфейса для всего представляет собой правильную абстракцию. Скорее, ожидание стабилизации общедоступного интерфейса класса, а затем рассмотрение правильной абстракции (т. Е. не простым нажатием кнопки "extract interface..."
в IDE) намного лучше с точки зрения дизайна. Кроме того, класс может абстрагироваться в несколько не связанных между собой интерфейсов, а не в один интерфейс.