Если это зависит от технологии, это все еще шаблон проектирования?
-
05-07-2019 - |
Вопрос
Сегодня вечером я побывал на собрании группы пользователей .NET, и его часть вращалась вокруг паттерна модель-представление-представление-модель, и мне стало интересно, можно ли это квалифицировать как шаблон.
У меня проблема в том, что M-V-VM исключительно технологичен. Если вы не используете WPF и его механизм связывания, я не понимаю, как вы могли бы использовать этот шаблон.
Напротив, большинство "классических" шаблоны в значительной степени технологически независимы. Самое большое предположение, которое они делают, заключается в том, что используемый язык является объектно-ориентированным и обычно поддерживает наследование. Кроме того, классические шаблоны в основном сводятся к постановке общей проблемы проектирования и предложению подхода к ее решению, но возможны многочисленные реализации или варианты.
Тогда у меня вопрос: где вы проводите грань между тем, что такое шаблон проектирования, и каковы рекомендации по использованию очень специфической структуры? Если вы знаете, как его реализовать, и какой язык и технологию вам нужно для этого использовать, это все еще образец?
Решение
Могут ли базовые понятия, которые необходимы для "подхода" чтобы работа была повторно реализована на другой платформе без нарушения каких-либо патентов, интеллектуальной собственности или непристойных объемов работ? Если это так, я бы сказал, что мы определенно можем назвать его шаблоном дизайна в том смысле, в котором вы к нему обращаетесь, - просто новым, который не так легко сделать широко, пока . (Хотя даже подходы, специфичные для платформы, все же могут быть шаблонами проектирования для меньшего сообщества, которое может их использовать).
Имейте также в виду, что MVVM - это просто конкретная реализация шаблона модели презентации представленный Мартином Фаулером , который, безусловно, является" классическим " как ты говоришь, и платформенно-независимый.
" Ничего нового под солнцем " как говорится, просто разные аранжировки одних и тех же идей. Принципы постоянно совершенствуются, редко изобретаются.
Другие советы
Шаблоны - это не остров в море других вещей. Это не черно-белое, что-то - образец или нет; все шаблоны могут быть размещены в масштабе и иметь различные оттенки серого между общим и специфичным для предметной области, между процессом и кодом и почти любыми двумя другими целями, которые вы выберете.
Если это рецепт, которым стоит поделиться или повторно использовать даже в немного различных обстоятельствах, то это образец.
Да, шаблоны проектирования часто зависят от используемого языка программирования и технологии: например, DP, работающие с явным владением ресурсами, плохо работают с языками, собираемыми мусором, а один обходит ограничения при вводе во время компиляции, плохо работает с динамическим языки и т. д. - это нормально, совершенно нормально, по сути неизбежно.
" Рекомендация " отличается от «шаблона дизайна»; не технологическим контекстом, а широтой и особенно глубиной: правильный DP определяет два или более независимо разработанных использования подобных подходов, углубляясь, чтобы увидеть, какие общие "силы" они имели дело с прекрасным, но тяжелым мета-форматом и оттуда оттуда. Напротив, рекомендация гораздо менее формальна, глубока и широка!
DP никогда не изобретаются , они обнаруживаются путем обдумывания существующего кода (двух или более независимо разработанных вхождений), которые имеют дело с похожими ситуациями, определяя общие черты как " силы и Quot; вождение решений и т. д. и т. д. "DP" это такой популярный, броский термин, что он использует FAR более широко, чем следует, - 0 - вернитесь к источникам и прочитайте или перечитайте, Александр Вневременный путь строительства и другие его работы. Если вы заблудились в зарослях умного слова DP, они помогут вам снова найти след
Если вы не используете WPF и его привязку механизм, я не понимаю, как ты мог используйте этот шаблон.
Silverlight и Moonlight также поддерживают MVVM.
«Языки основаны на парадигмах», каждая парадигма имеет разные способы решения проблемы. Шаблоны проектирования оказываются общими решениями, не имеет значения, зависит ли это от языка.