Design patterns are general reusable solutions to common problems in software design. They are not specific designs that can be transformed directly into code, but descriptions that can be applied to many situations. In 1994, the "Gang of Four" authors published the influential book Design Patterns, which introduced design patterns to software development. The book categorized patterns into creational, structural, and behavioral groups. Factory pattern is a creational pattern that provides a way to create objects without exposing object creation logic to the client. It allows for more flexibility in deciding which objects need to be created.