I try to follow the SOLID principles. But every time it comes to user interfaces I find that there's an inherent friction between the clunky screenful of hybrid, aggregated data the customer requires and the nice principles of single-responsibility.
Now it is possible to divide and conquer the various bits and pieces of a typical user interface into single-responsibility classes, but then you run into all sorts of interesting constructional issues because the so-called "separate" pieces of gui actually often turn out to be different views of the same shared state, or at least partial views of overlapping state.
I often end up mashing together fairly clunky controller classes for my views that are not very SOLID-like, but it's fairly inconsistent coding practice, and it bothers me a bit. It just seems like the complexity of splitting it up isn't worth it.
So how do you deal with it ?