You're not alone.
At any given moment, somewhere in the world someone struggles
with the same software design problems you have. You know you
don't want to reinvent the wheel (or worse, a flat tire), so
you look to Design Patterns--the lessons learned by those
who've faced the same problems. With Design Patterns, you get
to take advantage of the best practices and experience of
others, so that you can spend your... more...