A design pattern is a generic, replicable fix for a typical software design issue. It's a description or model for how to address a challenge that may be applied in a variety of circumstances. Design patterns can help to accelerate the development process by providing tested and verified development paradigms.