今晚我参加了一个.NET用户组会议,其中一部分围绕模型 - 视图 - 视图模型模式展开,让我想知道这是否符合模式。
我遇到的问题是M-V-VM非常特定于技术。如果您不使用WPF及其绑定机制,我看不出您如何使用该模式
相比之下,大多数“经典”模式在很大程度上与技术无关。他们做出的最大假设是使用的语言是面向对象的,通常支持继承。除此之外,经典模式主要是关于陈述一般设计问题,并提出解决方案的方法 - 但可能有多种实现或变化。
我的问题是,你在哪里画线,在什么是设计模式和什么是如何使用非常具体的框架的建议之间?如果您知道如何实现它以及您需要使用哪种语言和技术,它仍然是一种模式吗?
答案 0 :(得分:5)
“方法”工作所必需的基本概念能否在不违反任何专利,知识产权或淫秽工作的情况下在另一个平台上重新实施?如果是这样,我会说我们绝对可以称之为你所处理的设计模式 - 只是一个不容易做广泛然而的新模式。 (尽管即使是特定于平台的方法仍然可以用于可以使用它们的较小社区的设计模式。)
还要记住,MVVM只是演示模型模式 presented by Martin Fowler的特定实现,正如您所说,它当然是“经典”,与平台无关。
正如他们所说,“没有什么新的阳光下”,只是不同的安排相同的想法。原则一直在不断完善,很少发明新的原则。答案 1 :(得分:4)
在某些其他事物的海洋中,模式不是一个孤岛。它不是黑色和白色,是某种图案与否;所有模式都可以按比例绘制,并且在泛型和特定于域之间,在进程和代码之间以及您恰好选择的任何其他两个门柱之间存在各种灰色阴影。
如果它的配方值得在略微不同情况下共享或重用,那就是它的模式。
答案 2 :(得分:1)
是的,设计模式通常依赖于所使用的编程语言和技术:例如,处理显式资源所有权的DP在垃圾收集语言中发挥很大作用,一个解决编译时键入限制的问题与动态错误相关语言,等等 - 这是正常的,非常好,基本上是不可避免的。
“推荐”不同于“设计模式”,而不是技术背景,而是广度,特别是深度:适当的DP识别两种或更多类似方法的独立开发用途,深入研究它们的共同“力”正在以一种美丽但重量级的元格式处理并从那里开始。相比之下,推荐不那么正式,深刻和广泛!
DP永远不会发明,它们通过思考处理类似情况的现有代码(两个或多个独立开发的事件)而被发现,将共性视为“力量” “推动解决方案等等。”DP“是一个非常流行,引人注目的术语,它使用FAR的范围比应该更广泛 - 回到源头并阅读或重读亚历山大的{{3}和他的其他作品,如果你在DP的流行语中迷失了方向,他们会帮助你再找到这条路!
答案 3 :(得分:0)
如果您不使用WPF及其绑定 机制,我不知道你怎么可能 使用那种模式。
Silverlight和Moonlight也支持MVVM。
答案 4 :(得分:0)
“语言基于范式”,每种范例都有不同的方法来解决问题。设计模式恰好是常见的解决方案,无论它是否与语言相关都无关紧要。