For example, given that you need to manage the dynamic allocation and deallocation of objects, you can specify a logical strategy for minimizing memory utilization by keeping reference counts on objects and copying those objects only when an operation is performed to modify them. Having defined the strategy and given it a name, you can treat it as a design idiom. In contrast, code patterns are physical in nature. They focus on how a particular structure or sequence of action is accomplished using the specific mechanisms of a programming language. Classes and templates are not adequate mechanisms to implement many of the code patterns that are interesting to us.
Developers currently use parts-based and multiclass patterns, but they do so via hand coding.
You either know the pattern by heart, or you copy a code sample that already follows the pattern, and modify it to work in the specific case. Using Code Patterns Most production software environments operate under time and quality pressures. This is not because the patterns are unknown. It is not because developers do not recognize cases in which they would be good strategies to apply. It is because hand-crafting patterns adds just enough time and risk to a schedule to cause them to be shunned.