Hi HN,
I've been programming for quite some time now, and like to think I'm pretty decent at it, but of late I find myself having trouble with creating classes, it's not that I can't break a problem down into classes/methods, it's that the result doesn't seem...elegant at all, and I often have trouble finding clean ways to express interfaces for the groups of functionality I need. Does anyone know of a good set of principles on the subject? Am I just being OCD?
If computer science is at heart a mathematical subject, then mathematics informs us that the best way to make a solution more elegant is to restate the problem in a more suitable form.