Если это зависит от технологии, это все еще шаблон проектирования? - PullRequest
2 голосов
/ 22 октября 2009

Сегодня вечером я посетил собрание группы пользователей .NET, и его часть вращалась вокруг шаблона модели "представление-модель-представление", и мне стало интересно, квалифицируется ли это как шаблон.
У меня проблема в том, что M-V-VM исключительно технологичен. Если вы не используете WPF и его механизм привязки, я не понимаю, как вы могли бы использовать этот шаблон.
Напротив, большинство «классических» моделей в значительной степени независимы от технологий. Самое большое предположение, которое они делают, заключается в том, что используемый язык является объектно-ориентированным и обычно поддерживает наследование. Кроме того, классические шаблоны в основном сводятся к постановке общей проблемы проектирования и предложению подхода к ее решению, но возможны несколько реализаций или вариантов.
Тогда у меня вопрос: где вы проводите грань между тем, что такое шаблон проектирования, и каковы рекомендации по использованию очень специфической структуры? Если вы знаете, как его реализовать, и какой язык и технологию вам необходимо использовать для этого, все еще это образец?

Ответы [ 5 ]

5 голосов
/ 22 октября 2009

Могут ли базовые концепции, необходимые для «подхода» к работе, быть повторно реализованы на другой платформе без нарушения каких-либо патентов, интеллектуальной собственности или непристойных объемов работы? Если так, я бы сказал, что мы определенно можем назвать его шаблоном дизайна в том смысле, в каком вы к нему обращаетесь - просто новый, который не так легко сделать широко пока . (Хотя даже подходы, специфичные для платформы, все же могут быть шаблонами проектирования для небольшого сообщества, которое может их использовать).

Имейте также в виду, что MVVM - это просто конкретная реализация шаблона модели представления , представленного Мартином Фаулером , который, как вы говорите, безусловно "классический" и платформенный. агностик.

«Ничего нового под солнцем», как говорится, просто различные варианты одних и тех же идей. Принципы постоянно совершенствуются, редко изобретаются новые.

4 голосов
/ 22 октября 2009

Шаблоны - это не остров в море других вещей. Это не черно-белое, что-то - образец или нет; все шаблоны могут быть размещены в масштабе и иметь различные оттенки серого между общим и специфичным для предметной области, между процессом и кодом и практически любыми двумя другими целями, которые вы выберете.

Если это рецепт, которым стоит поделиться или повторно использовать даже в слегка различных обстоятельствах, это образец.

1 голос
/ 22 октября 2009

Да, шаблоны проектирования часто зависят от используемого языка программирования и технологии: например, DP, работающие с явным владением ресурсами, плохо работают с языками, собираемыми мусором, а один обходит ограничения при вводе во время компиляции, плохо работает с динамическим языки и т. д. - это нормально, совершенно нормально, по сути неизбежно.

«Рекомендация» отличается от «модели проектирования» не технологическим контекстом, а широтой и особенно глубиной: собственно DP определяет два или более независимо разработанных использования подобных подходов, углубляясь, чтобы увидеть, какие общие «силы» они мы имели дело с красивым, но тяжеловесным мета-форматом. Напротив, рекомендация гораздо менее формальна, глубока и широка!

DP никогда не изобретаются , изобретаются , они обнаруживаются путем обдумывания существующего кода (двух или более независимо разработанных вхождений), которые имеют дело с похожими ситуациями, определяя общие черты как движущие силы решения и т. д., и т. д. «DP» является настолько популярным, броским термином, что он использует FAR более широко, чем следовало бы, - вернуться к источникам и прочитать или перечитать Timeless Way of Alexander. Строя и другие его работы, если ты заблудился в зарослях умного слова DP, они помогут тебе снова найти след!

0 голосов
/ 23 октября 2009

«Языки основаны на парадигмах», каждая парадигма имеет разные способы решения проблемы. Шаблоны проектирования оказываются общими решениями, не имеет значения, зависит ли это от языка.

0 голосов
/ 23 октября 2009

Если вы не используете WPF и его привязку механизм, я не понимаю, как ты мог используйте этот шаблон.

Silverlight и Moonlight также поддерживают MVVM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...