1.mvc和mvvm的区别
mvc:是model -view-controller
model持有数据
view负责将数据展示给用户并接收用户的事件
controller负责将model和view关联起来,当model发生变化时controller可以通过Nsnotification或者KVO来进行监听然后通知view进行相应的改变,view发生变化时controller可以通过delegate或者block来进行监听然后相应的改变model
mvvm:是model-view-viewmodel
model持有数据(也可以添加一些业务逻辑)
viewmodel是把model和view进行了绑定,当model变化时view会跟着变化,当view接收到事件时model也会跟着变化
controller则负责将viewmodel展示出来
mvc的优点:model和view分离,可扩展性强有利于重用
mvc的缺点:controller过于庞大不好维护
mvvm的优点:对controller进行了瘦身,便于代码移植(一个viewmodel可以绑定到不同的view/controller上)、兼容mvc
mvvm的缺点:文件数量会增加,数据绑定后bug更难调试