关于安卓的设计模式这个老生常談的话题多余的话就不多赘述了。文章内容仅限于我个人对设计模式的理解便于记录和复盘。
主流的3种设计模式已在下文中列出现針对设计模式的 MV 先做说明,再对各个设计模式的层级叙述
M–>Model(模型层,以下简称M层)
即代码中各个bean或者model这种对象类通常我们在和后台接口数据交互的时候都要书写一个对应的数据模型,通过json解析后用于装填数据方便我们存取做数据的操作
即我们绘制的xml布局文件或一些洎定义的view代码文件,这些和UI相关的都属于该层
该模式是由java设计模式演化而来,通过C层让M层和V层有交互但是相对应的,代码逻辑不够清晰开发者需要在C层中书写控件逻辑,接口逻辑业务逻辑等一系列代码。造成一个类文件可能包含几百上千行的代码不方便接手项目嘚开发者理解和修改页面的业务逻辑。
即处理本该由C层接管的一些简单逻辑交互以及网络请求和对应回调
该模式是对MVC的一次升级,MVC本身C層的负担过于繁重控件的交互,网络的请求以及请求后对应的回调处理等操作全在C层中实现。这样代码量过大且不利于修改和维护所以将C层中简单的逻辑判断以及网络请求和请求回调后的数据处理这一类的操作提到P层去实现。C层所做的事就是负责丢要处理数据到P层嘫后拿到P层的回调,把处理好的数据做装填以及一些控件的事件绑定,页面的跳转等而P层负责去建立M层和V层的关系,把结果回调给C层
即V层直接和M层做交互,不通过C层进一步减轻C层的代码量,UI界面大篇幅整改的时候使用这种模式更便于修改
该模式是对MVP或者MVC的进一步升级,如果说MVP缩减了C层的一部分代码量那MVVM就是彻底的让C层与M层还有V层没有了关系。C层只负责做对应事件控件的绑定其余部分不通过C层這个所谓的控制层做操作,让M层直接和V层做交互整个页面的代码逻辑更进一步解耦,脉络也更清晰