Design patterns provide solutions for common problems: - Singleton: only one instance - Observer: event-driven - Factory: create objects dynamically - Module: encapsulate functionality