参考:https://blog.csdn.net/feiduclear_up/article/details/46363207 , 有源码,可以直接看。
android的mvc设计模式,与spring的mvc设计模式有点区别。
相对spring来说,mvc的设计很清晰明了,controller解析url地址,根据url地址的不一样解析为对应的mode,然后返回对应的view,这样MVC的框架就很清晰了。
对应Android的mvc,就有点琢磨不透了,Activity和Layout的关系,使其很难划分controller,mode和view,目前比较好的划分是将Layout划分为view,Activity划分为controller,另外新建一个class为mode(主要处理数据库存取操作,网络操作,复杂的算法,耗时的任务等)。这样的划分也很好理解,用户点击手机屏幕不同的按钮,Activity监听到不同的点击事件,处理事件对应的mode,在mode处理完后,再将数据返回到Activity中,而activity在将mode返回的数据显示到Layout中。这就是Android的MVC的流程,但是,Activity和Layout的耦合性还是很大,这个因为Layout要依赖Activity。 (不知道我这样的理解对不对,暂时就这么写吧,后面不对再修改。)
MVC的问题:controller的职责明显变的很多,容易照成controller的臃肿。
与MVP的区别
在MVP中,mode和view是不能直接交互的,但是,在MVC中是可以的。