wpf – 目前的MVVM视图模式做法是否违反单一责任原则?
使用当前的做法(至少使用WPF和Silverlight),我们可以看到在视图模型中通过命令绑定绑定的视图,或者至少看到视图模型中处理的视图事件。这似乎违反了
SRP,因为视图模型不仅仅是建模视图状态,而是响应视图(用户)。其他人已经询问了
how to build view models without violating SRP或要求
whether their implementations do so(最后是MVC中的控制器,但大体上类似)。
目前的做法是否违反SRP?还是“查看模式”真的是不违反SRP的东西的集合?为了构想这一点,似乎我们需要知道单一责任是什么,或者在概念中有多重责任,个人责任是否符合SRP。我不确定。 Wikipedia’s definition视图模型说
这似乎对SRP来说足够好,但是后来的条目说(我的重点是加了)
作者在Prism blog post号关于观察模式的作用时说,(再次,我的重点)
我确定我错过了很多定义,但是它们似乎属于这些类别: >单一“模糊”的建模视图状态的责任(所以我们做什么 如果你好奇,我“关心”这一点,因为(2)觉得正确,但似乎与现行的实现相反。
单一责任为
Martin defines it:
一个ViewModel,就MVVM而言,实际上只是一个Presentation Model的专门实现。 因此,尽管可以认为演示模型只能表示UI的状态,而演示者/控制器应该总是在UI和演示模型之间进行代理。如果遵循这个想法,使用SRP划分状态和命令,那么添加命令不应该影响表示状态的类。因此MVVM将破坏SRP。 然而… 我认为这是抓住稻草。 MVVM是一个相当专门的实现,基本上在WPF / Silverlight(and now browser clients)中使用。 模式旨在使设计更简单,替代方案会更麻烦或更不易维护。由于MVVM旨在利用演示技术的极其丰富的数据绑定功能,因此它是一个有价值的交易。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |