Someone pointed out this blog post to me:
The following quote concerns me:
"An interface should define at most one member."
I cringe at hard-and-fast rules like this. I understand the author’s sentiment but I guess I would have phrased it like so:
Interfaces should be designed to be provide a minimal surface area to accomplish a specific task. If that can be one with a single member – great! Now if that surface area grows too large, consider factoring the one interface into multiple interfaces if the tasks can be cleanly separated.
What constitutes too “large large”? That’s where software developers get paid the big bucks to use good engineering judgment. 🙂