I was designing, centralizing, decoupling. Then some changes came about. I implemented them, then watched them fluently rippling throughout the system. "How cool is that?".
It was some time ago when I was an OOP-design junkie (I think it's analogous to puberty: exaggerating). I think I passed that, as I frequently wonder if I'm over-designing and get back to using plain strings, constants etc.
I once read that, designing a plugin (be it a pattern or an actual plugin), try no less than 3 different implementations.
He's right, though. I work with Magento. Try adding a new backend form in that beast.