В некоторых случаях для практичности. Когда вы видите общую повторяющуюся проблему, вы найдете общее, общее решение для ее решения. Это происходит в архитектуре, механике, удобстве использования и поведении человека, и программирование не исключение.
В некоторых других случаях модель также является способом борьбы с «неэффективностью» языка, где «неэффективность» очень широка по своему значению и не всегда в плохом смысле. Например, некоторые шаблоны, обычно используемые в Java, менее важны в языке, где функции являются объектами первого класса. Некоторые шаблоны проектирования имеют смысл только в некоторых языках и невозможны в других: Крокфорд описывает шаблоны Javascript, которые являются своего рода уникальными для этого языка, чтобы иметь дело с потенциальной минно-подобной природой языка (что, я должен отметить, действительно классный язык, раз ты его понимаешь).