美文网首页
框架和模式

框架和模式

作者: Dream_Book | 来源:发表于2020-04-09 14:09 被阅读0次

    这个就写的挺好的,有理有据!!!!

    以下仅做个人学习笔记使用:

    框架、设计架构:是代码重用(例:MVC)
    设计模式:是设计重用(例:工厂模式)
    框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。

    MVC:Module(模型层)——View(视图层)——Controller(控制层)

    • M层:处理数据和业务逻辑,在Android中我们通常会将网络请求模块独立封装出来,数据请求成功后通过Handler通知Activity,这里的封装就是C层的体现。

    • V层:处理界面的显示结果,在Android中就通过XML编写的UI布局来体现。

    • C层:起到桥梁的作用,控制V层和M层通信以此来达到视图和业务逻辑的分离,在Android中的体现就是Activity。

    在MVC框架中,View和Module通过Activity链接和分离。但是,Activity并不是一个单纯的Controller,不仅要和用户交互还要初始化界面还要加载数据,随着业务逻辑的增长Activity会愈发的臃肿。所以,就出现了MVP框架模式。
    MVP:Module(模型层)——View(视图层)——Presenter(控制层)

    • View:负责绘制UI元素、与用户进行交互(在Android中体现为Activity)
    • Model:负责存储、检索、操纵数据(有时也实现一个Model interface用来降低耦合)
    • Presenter:作为View与Model交互的中间纽带,处理与用户交互的负责逻辑。
    • View interface:需要View实现的接口,View通过View interface与Presenter进行交互,降低耦合,方便进行单元测试

    具体到Android中,一般可以将App根据程序的结构进行纵向划分,根据MVP可以将App分别为模型层(M),UI层(V)和逻辑层(P)。

    UI层一般包括Activity,Fragment,Adapter等直接和UI相关的类,UI层的Activity在启动之后实例化相应的Presenter,App的控制权后移,由UI转移到Presenter,两者之间的通信通过BroadCast、Handler或者接口完成,只传递事件和结果。

    举个简单的例子,UI层通知逻辑层(Presenter)用户点击了一个Button,逻辑层(Presenter)自己决定应该用什么行为进行响应,该找哪个模型(Model)去做这件事,最后逻辑层(Presenter)将完成的结果更新到UI层。

    MVC和MVP两者的区别:

    • View与Model并不直接交互,而是通过与Presenter交互来与Model间接交互。而在MVC中View可以与Model直接交互
    • 通常View与Presenter是一对一的,但复杂的View可能绑定多个Presenter来处理逻辑。而Controller是基于行为的,并且可以被多个View共享,Controller可以负责决定显示哪个View
    • Presenter与View的交互是通过接口来进行的,更有利于添加单元测试。

    相关文章

      网友评论

          本文标题:框架和模式

          本文链接:https://www.haomeiwen.com/subject/htqtuhtx.html