Николай коснулся этого, но шаблоны проектирования не согласуются между языками, которые имеют существенные различия. Я уже читал (и согласен с), что шаблон проектирования часто является признаком отсутствия функций в языке.
В качестве идеального примера шаблон «Фабрика» совершенно не нужен в некоторых языках, например, Ruby в качестве примера, о котором я думаю (поскольку создание объектов - это просто метод в экземпляре Class):
# create a factory for MyObject
my_factory = MyObject
instance_1 = my_factory.new
# change the factory to another class
my_factory = MyOtherObject
instance_2 = my_factory.new
Всякий раз, когда вы применяете шаблон дизайна к языку, отличному от того, для которого он был изначально разработан, обязательно подумайте, действительно ли он ДЕЙСТВИТЕЛЬНО необходим, и каким образом вы сможете улучшить его с помощью новых доступных языковых функций. Шаблоны проектирования - это всего лишь руководство, вы всегда должны учитывать, действительно ли вам предназначение предназначено для этого шаблона, или же его можно лучше использовать в вашем случае.