/Android-Interview

设计模式 MVC、MVP、MVVM的区别 MVC:Model--->View--->Controller 单向通信 优点:耦合性低,重用性高,生命周期成本低,使开发和维护用户接口的技术含量降低,可维护性高,部署快 实现关注点分离,将程序中的数据模型与展示逻辑实现解耦,耦合度降低,View发送指令给Controller执行业务逻辑,处理后通知Model改变状态,Model处理完通知View,刷新视图让用户得到反馈。 Model:模型,封装业务逻辑以及对数据的处理 View:视图,渲染页面,通知控制器处理业务逻辑 Controller:控制器,连接Model和View的桥梁,用于控制应用程序的流程以及业务的逻辑。 缺点:不适合中小型规模的程序,视图与控制器间联合紧密,重用性低,视图对模型数据的访问效率低 MVP:Model---View---Persenter 双向通信 优点:View与Model完全分离,修改View不影响Model,更有效的使用Model,所有的交互都放在了Persenter中处理,一个Persenter可用于多个Model,更有利于单元测试 缺点:View与Persenter交互过于频繁,View有所改变,Persenter也得跟着变化 M、V、P双向通信 View与Model不直接通信,通过Persenter进行连接,所有的交互都发生在Persenter中 View:不执行任何业务逻辑,只展示视图 Persenter:业务逻辑处理,通过定义的接口跟View进行交互 MVVM:Model,View,ViewModel 分离视图和模型 低耦合,可以独立于Model的变化修改,一个ViewModel可以绑定不同的View上,当View变化的时候Model可以不变,View变化的时候Model也可以不变 可重用性,可以把大概相同的视图逻辑放到ViewModel中,让View共用一个ViewModel 独立开发,开发人员可以专注于业务逻辑和数据开发(ViewModel),设计人员专注于页面 方便测试,可以专门针对ViewModel进行测试

No issues in this repository yet.