This document summarizes design patterns. It discusses that design patterns provide reusable solutions to common problems in software design. It classifies design patterns into three categories: creational patterns, structural patterns, and behavioral patterns. Creational patterns deal with object creation mechanisms. Structural patterns concern class and object composition. Behavioral patterns specify communication between objects. Some examples of patterns discussed include singleton, factory method, adapter, and strategy.