Think your design is good? The bar is higher now
This post to a forum on Artima.com illustrates how the application of Test-Driven Development techniques leads to better code. Michael Feathers wrote: Pick a class, any class, and try to instantiate it in a test harness. I used to think that my earlier designs were good until I started to apply that test. We can talk about coupling and encapsulation and all those nice pretty things, but put your money where your mouth is. Can you make this class work outside the application?
Reflection: if you can't make this class work outside the application then what are the reasons? How much work would it take to disentangle the class from this specific application?