Если это зависит от технологии, это все еще шаблон проектирования?

StackOverflow https://stackoverflow.com/questions/1605200

  •  05-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

DP никогда не изобретаются , они обнаруживаются путем обдумывания существующего кода (двух или более независимо разработанных вхождений), которые имеют дело с похожими ситуациями, определяя общие черты как " силы и Quot; вождение решений и т. д. и т. д. "DP" это такой популярный, броский термин, что он использует FAR более широко, чем следует, - 0 - вернитесь к источникам и прочитайте или перечитайте, Александр Вневременный путь строительства и другие его работы. Если вы заблудились в зарослях умного слова DP, они помогут вам снова найти след

  

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top