Reusable solutions to commonly occurring problems in software design, including the Gang of Four catalog and core API design patterns.