Я стараюсь следовать принципам SOLID . Но каждый раз, когда речь заходит о пользовательских интерфейсах, я обнаруживаю, что между неуклюжим скрином гибридных агрегированных данных, которые требуются заказчику, и хорошими принципами единой ответственности есть внутреннее трение.
Теперь можно разделить и покорить различные части типичного пользовательского интерфейса на классы с одной ответственностью, но затем вы столкнетесь со всевозможными интересными конструктивными проблемами, потому что так называемые " отдельные "части графического интерфейса пользователя на самом деле часто оказываются разными представлениями одного и того же общего состояния или, по крайней мере, частичными представлениями перекрывающегося состояния.
Я часто заканчиваю тем, что собираю довольно неуклюжие классы контроллеров для своих представлений, которые не очень похожи на SOLID, но это довольно противоречивая практика кодирования, и это немного беспокоит меня. Кажется, что сложность его разделения не стоит того.
Так как вы справляетесь с этим?