The following libraries are for design patterns.
Boost.Flyweight helps in situations where many identical objects are used in a program and memory consumption needs to be reduced.
Boost.Signals2 makes it easy to use the observer design pattern. This library is called Boost.Signals2 because it implements the signal/slot concept.
Boost.MetaStateMachine makes it possible to transfer state machines from UML to C++.