Design Patterns could be viewed as missing language features. The Introduction of Design Patterns: Elements of Reusable Object-Oriented Software states:
The choice of programming language is
important because it influences one's
point of view. Our patterns assume
Smalltalk/C++-level language features,
and that choice determines what can
and cannot be implemented easily. If
we assumed procedural languages, we
might have included design patterns
called "Inheritance," "Encapsulation,"
and "Polymorphism." Similarly, some of
our patterns are supported directly by
the less common object-oriented
languages. CLOS has multi-methods, for
example, which lessen the need for a
pattern such as Visitor. (italics mine)
The sentence in italics is the answer to your question.