Giter Club home page Giter Club logo

xonoer / android-interview Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jersey-guo/android-interview

0.0 0.0 0.0 329 KB

设计模式 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进行测试

android-interview's People

Contributors

jersey-guo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.