[Design patterns] solve specific design problems and make object-oriented designs
more flexible, elegant, and ultimately reusable.
They help designers reuse successful designs by basing new designs on prior experience.
A designer who is familiar with such patterns can apply them immediately
to design problems without having to rediscover them.

Preferences