В статье, которую вы упоминаете, довольно хорошо объясняется, что такое шаблоны проектирования, и я бы добавил еще несколько деталей в контексте вашего вопроса.
Шаблоны проектирования обеспечивают хорошо понятные способы повышения качества программного обеспечения, в основном снижая сцепление и увеличивая сцепление . Эти два свойства присущи любому фрагменту программного обеспечения, независимо от того, написано ли оно на статически типизированном, динамически типизированном, основанном на сообщениях / объектно-ориентированном, функциональном или императивном языках.
Хотя шаблоны могут немного различаться в динамически и статически типизированных языках, они, тем не менее, предоставляют полезную концептуализацию того, как должен разрабатываться код.
На самом деле, многие (если не все) авторы оригинальной книги по шаблонам проектирования были очень хорошо разбирающимися в разговорах по мелочам и, вероятно, обнаружили эти шаблоны при работе с кодом Smalltalk. В оригинальной книге сотни упоминаний о Smalltalk, и многие из оригинальных шаблонов применяются в системах Smalltalk.
Если вы откроете какой-либо Smalltalk, посетитель будет одним из наиболее легко различимых из-за его особого посещения / принятия API, который используется для обхода многих древовидных структур, таких как деревья разбора в компиляторе или узлы в иерархии элементов пользовательского интерфейса.