MXV

作者: 幻灰龙 | 来源:发表于2013-06-07 13:47 被阅读169次

跟UI相关的,总是会用上MVC、MVP、MVVM 这类三层构架。它们都是三层构架,实际上三层构架只是做了模块划分,并尽量减少M和V层的耦合。最早,没有各种分层的时候,简单点都是直接让V耦合M。代码多起来的时候,根据情况则有必要进行分层,带来了各种好处,也带来了各种麻烦。每个人在用MVC、MVP、MVVM的 时候总是或多或少有疑惑:这代码非得写的这么罗嗦?

M,基本上就是针对具体领域的「Domain Specification Data Struct」+ 「Extension Method」+「Process Utils」+「Object Relation Map」,
V, 基本上就是针对具体场景的「Data Related View Struct」+ 「Render Engine」+「XML Based Layout」+「Interact Script」+「Get/Set Data」

C, 意味着M和V的分离只是相对的,V还是会直接绑定M,并针对M做Get/Set动作。C也直接监听V的动作,并操作M和V。

P,意味着V只提供Render的API和Event,M只提供Get/Set/Event,两者都通过接口注入P,在P里面组装。M和V完全分离,互相不知道对方。

VM,意味着V主动通过VM获取ViewData,而VM拥有M,也可以将VM看成是ViewAdapter

基本上,这些都是可以通过Code Generator生成Framework。

以上,统称MXV。是一种用来解耦的,将耦合转嫁到分层带来的复杂。

事实上对于给定项目来说:max(耦合度)+min(复杂度)>= 常量。

每个项目的目的有两个:完成任务+积累一些可复用的模块。
如果是长期维护型的,则需要持续迭代,达到上述公式的最小值。
如果是短期抛弃型的,则胶合层可高度耦合,做完即扔。


20130607
@幻灰龙

相关文章

  • MXV

    跟UI相关的,总是会用上MVC、MVP、MVVM 这类三层构架。它们都是三层构架,实际上三层构架只是做了模块划分,...

  • 桌面整洁好帮手,爱格升MXV显示器支架体验

    对于楼主这种平时没事拍拍开箱照,写写体验文章的人来说,一个整洁的桌面实在是太有必要了,想拍照的时候桌面上的东西可以...

网友评论

      本文标题:MXV

      本文链接:https://www.haomeiwen.com/subject/kmyxtttx.html