MVC对MVC对MVC

MVC的主要目的即是将数据、逻辑、界面分离,从而使产品的结构更清晰。那么,应该如何分离才是最好最高效的呢?

第一种

view监听自己的事件,并回调controller,controller处理事件,并控制view显示。

第二种

view控制自己的显示,只通知controller处理数据

第三种

view将控件暴露给controller,由controller来监听view的事件,处理并控制view的显示

第一种

view与model,与controller分离。(不完全,view会耦合自身的事件逻辑,下同)

第二种

view与controller分离,但会与model耦合。

第三种

view严格与model,与controller分离。

举例:controller控制一个view,view上有一个button,点击button,会弹出一个tableView,tableView数据异步获取,将选择tableViewItem传给controller处理。

第一种

view监听button点击事件,并将事件回调给controller,controller从model取到数据,控制view显示tableView并显示数据,tableView监听自己的选择事件,并将选择item回调给controller,完成目标。其中controller同时需要监听view和tableView,view需要提供显示tableView和tableView加载数据的接口。

第二种

view监听button点击事件,从model取出数据并显示tableView。同时监听tableView的选择事件,并将选择item回调给controller,完成目标。其中controller需要监听view,view需要监听tableView。

第三种

controller监听button点击事件,从model取到数据并显示tableView。同时监听tableView的选择事件,完成目标。其中controller需要监听button和tableView。

代码结构:

第一种

view负责界面的初始化,包括view,button,tableView;负责控件的监听,包括button点击,tableView选择。

controller负责逻辑的控制,tableView显示;负责view的监听,包括view回调需要显示tableView,view回调最终选择项。

model负责数据的获取,tableView数据。

第二种

view负责界面的初始化,包括view,button,tableView;负责控件的监听,包括button点击,tableView选择。负责控件的逻辑,tableView显示。

controller负责view的监听,监听最终结果。

model负责数据的获取,tableView数据。

第三种

view负责界面的初始化,包括view,button,tableView;

controller负责负责控件的监听,包括button点击,tableView选择;负责控件的逻辑,tableView显示。

model负责数据的获取,tableView数据。

第一种

view负责初始化和事件监听,controller负责管理和控制view。

第二种

view负责主要代码,controller只监听最终结果。

第三种

view只负责初始化,controller负责主要代码。

个人感觉,第三种是最标准的分离方式,但是大量的逻辑代码堆积在了controller里,使mvc变成了Massive View Controller;第二种是最方便的分离方式,但是view直接从model取数据,并不符合mvc的要求;第一种比较折中。

那么哪一种才是最好最高效的呢?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,423评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,976评论 25 709
  • 我的100天目标 1.简书更新3万,日更300多字 2.每月运动80公里 3.每天22:00之前睡觉 今日读书和听...
    lijutong_010阅读 1,189评论 0 0
  • New logo 你也能創作這樣的圖文 免費下載 10-6 运营小白的毕业总结#运营控课程# 180 10号电池 ...
    招财猫儿阅读 1,832评论 0 0
  • 儿子暑假第四天,这几天半喜半忧,喜的是 儿子按部就班按照自己的计划在认真执行,即使早上睡的再沉,六点半我一...
    隋秀珍阅读 1,103评论 0 0

友情链接更多精彩内容