Design patterns allow developers to communicate using well-known, well-understood names for software interactions.