关于MVC的一对清楚

1.
API底复用是微观层面的复用,MVC里面Model的复用是宏观层面的但复用,两个关爱之复用点不相同的。举例说明:Windows
API和MFC,一个凡脚,一个凡框架。差别在何啊?用线性代数类比的话,API提供的虽是基向量,而MFC提供的虽然是基向量的各种组合。也就是说,凡是你用MFC能一气呵成的作业,用API都能到位,但是这需要而协调重头组合一样赖,效率一般就低MFC(我说的凡一般景象);但是若用MFC搞不必然的工作(Windows平台),那么即便非API不可知成就,因为MFC不容许提供有的基向量组合。这便用您协调来计划怎么用这套API组合产生具体的事体逻辑。
一个统筹之好的库房,一定要是包核心的API,也不怕是基向量,能吃你在这个平台上无所不能;同时也要提供各种丰富的框架,也就算是各种基向量的做,能叫你不过要命限度避免再过去轮子。
MVC模式面临Model就是做后的基向量。各种不同的作业逻辑都发出两样之Model,而基本的API不可能边这些Model(而且这也无是API应该举行的行,API只当提供基向量,提供接口,组合则是出于程序设计者就)。所以MVC里面的可是复用就是此意思。
2.
若说的无错,确实就是是类库了。因为MVC里面的M就是指向特定业务领域使用中心的API进行的逻辑组合。web领域如此,其他领域如符合的话,同样好用之法展开组合。而且要留意一点,个人觉得MVC模式之尽深亮点不在于可复用,因为她自己是API的整合,复用性再赛呢高不过API,所以不如说是“减少重复劳动”更为稳妥。MVC的极端要命优点,个人认为是解耦。也即是将作业逻辑与其的表现方法分别,让Model不指让View的转,或者至少为双方可以独立变化,不至于View变了,导致连Model的接口也要是接着变动。因为对具体的事情逻辑,Model一般是对立安静之,而View则是易变的。程序设计者地任务,就是包装这种转移,把变化带来的改动降低至绝少。MVC提出来的出发点主要是为免去Model和View的耦合,复用性则是次各类的。只有耦合度最小,维护资金才会低。解耦的章程产生多,MVC不过是过多道被表现的于可观的同样栽而已。所以建议理解MVC的时候,应该主要从以的目的上理解,如果未亮堂目的而使用以来,其结果就是咱常说到的“为模式要模式”,也尽管凡是“模式误用”,效果还非设非用者模式。
3.
关于模型中数的扭转,7楼就说的百般懂得了。你如掌握MVC这种机制以来,就率先要了解“观察者模式”。只有掌握了这个模式你才能够领悟MVC中之M为什么是这样子而未是其他则。
倘若View是上层的话,Model就是脚。一般而言,都是上层来调用底层的API。但是在少数时刻,底层或需要扭转回调上层之接口,这样就是相同种植双向依赖。MVC里面的M之所以使用观察者模式,就是为最要命限度解除这种靠(请留意是太老限度,而休是全去掉,因为未可能100%的清除)。具体的做法,就是啊View定义一个回调的接口,然后以模型中保留下来(C++里面的平等种植经典实现方式尽管是函数指针);等交Model的数发生变化了,而这又要就以View上展现来这种转移的当儿,就动这个回调接口通知具体的View来成功更新。至于是回调接口是怎么落实之,则是View的职责了,Model只待负通知到View就OK了。
举例说明的语句,如果你是主任,开会的时光的稿子一般还不见面亲自写,而是通知你的秘书完成,具体怎么写出来的公切莫待关爱,你才当通知秘书就OK了。所以书记是负责人暗自的颜面(View),领导则是真正的策划者(Model)。


或多或少亮堂,共参考。

设想这样少个case,统计人数分布[0-20,21-40,41-60,大于60],统计人数地区分布[beijing,上海,etc]
1,如何收获各国区间的人数,及在总人数之比例。这个是M的行事。
2,如何展示这比重,用表格,圆,图等花样来展示。这是V的工作。
3,何也用,如果你同一开始开发一个“显示百分比的图程序”,只是给丁分布用的。但如果来同等龙,boss让您统计各员工来的什么地方。那若付出之“显示百分比的图程序”就好直接当此处一直采用了。
4,模型变化,这个转变是外表通知M的。假如我们地方员工分布例子的例证中,有一个Table
View,里面用户的音信。假如我们觉得加人表示来了新人,删人表示离职。那我们的以View上之add,delete操作将通知Control,Control就要通知M。这虽是您想说的谁模型变化。
5,模型收到变化信息后,就可以一直通知注册的V,V收到后哪怕可一直改动显示,而未用关爱具体的生成数据。
6,灵活性,这个模型你想加几单View都好,只要报及M上就好。表格看的难受,可以加个图表示的,页可以加个用柱子来表示的。


模型(Model),视图(View)和控制Controller)
本人来试着吃你摆脱一下,
范(Model)一般仰仗的凡 业务模型 + 数据模型
视图(View)其实是平等栽结果的表现形式
操纵(Controller)用来接受请求,并作出给予何种回馈之表决。

1.事先出言用(其实乃这边掌握的任用是狭义的代码/函数复用)
  打而:打比方你报考一所高校(分数会上),
  a.大学收到你的志愿(请求)
  b.大学招生办(控制)它会呈请学校里异常多单位协调作出决定(业务逻辑)。
  c.大学招生办根据此决定于你恢复。
  被录取/未录取
  i: 招生办可能打电话通知你吃选定了
  ii: 招生办可能通过写信告知你,你受录用了
  iii:招生办可能通过电子邮件告诉您,你叫收录了

  招生办通过什么招通知你,这便是一个操。
  你取得消息的表现形式,便是一个视图。
 

即如此多先

均转于:http://topic.csdn.net/u/20110414/15/b8023d2d-9569-4323-93bb-032073e81370.html