Считается ли миксин шаблоном проектирования?

Считаются ли примеси шаблоном проектирования? Структурный?


person 4thSpace    schedule 12.02.2009    source источник
comment
Кем считается? Я не думаю, что есть официальный список шаблонов проектирования.   -  person David Thornley    schedule 13.02.2009
comment
конечно, есть официальные списки шаблонов проектирования, начиная с шаблонов проектирования: элементы многоразового объектно-ориентированного программного обеспечения и более молодой литературы.   -  person Angel O'Sphere    schedule 25.05.2011
comment
Но кроме того, помимо 23 из них, упомянутых в книге, есть много других шаблонов проектирования. Я думаю, миксин можно в какой-то степени считать своего рода шаблоном проектирования.   -  person Yuan Wen    schedule 21.04.2016


Ответы (4)


Это особенность языка. «Шаблон» отличается от характеристики тем, что он разрешает набор сил, которые могут противоречиво влиять на ситуацию. Особенности, своим присутствием или отсутствием, как правило, создают силы, которые разрешают шаблоны. Многие шаблоны проектирования (хорошим примером является Double Dispatch) появились для того, чтобы обойти языковые ограничения (в данном случае диспетчеризация метода для одного аргумента).

person Morendil    schedule 12.02.2009
comment
Не в .NET. Это больше похоже на узор. - person 4thSpace; 13.02.2009
comment
Если вы знаете ответ, то зачем задаете вопрос? ;) - person Morendil; 13.02.2009
comment
ключевое слово похоже. Это звучит неуверенно для меня. - person 4thSpace; 13.02.2009
comment
Хорошо, я думаю, это отвечает на вышесказанное. Что вы будете делать по-другому в зависимости от того, считается ли это шаблоном или чем-то еще? - person Morendil; 13.02.2009
comment
Похоже, мы вернулись к субъективности, так что давайте оставим ее там, где она есть. Отвечая на ваш вопрос - ничего. Можно ли сказать, что миксины похожи на шаблон посетителя? А в .NET через расширения-декораторы? - person 4thSpace; 13.02.2009
comment
Если миксины поддерживаются вашим языком, шаблон не нужен. в противном случае узлы, в которые вам обычно приходится закручиваться, чтобы это произошло, называются паттерном. Многие из шаблонов GoF не существуют в функциональных языках, только в объектно-ориентированных языках, потому что функциональные языки имеют первоклассные функции. Точно так же, если ваш язык поддерживает миксины, единственным шаблоном является их использование. Если это не так, но это полный по Тьюрингу язык, то в любом случае существует какой-то запутанный способ сделать это. Это то, что мы называем шаблоном. - person candied_orange; 14.06.2016

Да, это в Руби.

Шаблоны проектирования в Ruby

person alex    schedule 12.02.2009

Да, это в Д.

«Шаблон проектирования — это универсальное многократно используемое решение часто встречающейся проблемы в разработке программного обеспечения» — Википедия.

D компилируется в машинный код, и с помощью примесей вы можете использовать его, чтобы сделать шаблоны еще более полезными, чем в чем-то вроде C++.

http://www.digitalmars.com/d/1.0/template-mixin.html

person Tim Matthews    schedule 12.02.2009

Миксины не являются шаблонами проектирования. В большинстве случаев это особенности языка!! Например. в языке D "mixin" является ключевым словом. Использование ключевого слова по его прямому назначению не является шаблоном. Типичное использование ключевых слов/функций языка может быть названо «идиомой».

Иерархия — это «ничто», идиома, шаблон проектирования, шаблон архитектуры.

person Angel O'Sphere    schedule 25.05.2011