Design Patterns

By Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
https://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional-dp-B000OOIOVY/dp/B000OOIOVY/ref=mt_paperback?_encoding=UTF8&me=&qid=1569518995

Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.