【Android -- 架构】MVC 模式

网友投稿 660 2022-11-26

【Android -- 架构】MVC 模式

【Android -- 架构】MVC 模式

MVC

刚接触编程,相信第一个遇到的框架就是 MVC ,不管你经意还是不经意写出来的 Android 程序他就是 MVC 框架,只不过是 MVC 框架的某一个变种(最混乱的那种)。Android 系统本身就根据 MVC 建造的。

设计图

视图层(View)对应于 xml 布局文件和 java 代码动态 view 部分控制层(Controller)对应于 Activity 和 Fragment 。模型层(Model)针对业务模型,建立的数据结构和相关的类,它主要负责网络请求,数据库处理,I/O 的操作。

优点

由于MVC很好的分离了视图层和业务层,所以它具有以下优点:

开发速度快可维护性高易于理解

缺点

由于 MVC 的设计思想是从 Model 出发,而没有考虑到 View 端的复杂性,这样导致的问题是 Model 难以符合复杂多变的 View 端变化。导致 Model 的作用很小,而很多 View 层的职责也转移到了 Controller 层。Controller 变得臃肿不堪。耦合性也变高了。测试困难。

实例

public interface Listener { void onEvent(String str);}

Model.java

public interface Model { void onHandle(Listener listener,String str);}

ModelImpl.java

public class ModelImpl implements Model { @Override public void onHandle(Listener listener, String str) { listener.onEvent(str + "ok"); }}

MainActivity.java

public class MainActivity extends AppCompatActivity implements Listener { private Button mButton; private ModelImpl mModel = new ModelImpl(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButton = findViewById(R.id.button); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mModel.onHandle(MainActivity.this,mButton.getText().toString()); } }); } @Override public void onEvent(String str) { mButton.setText(str); }}

小结

具有一定的分层,Model 彻底解耦,Controller 和 View 并没有解耦;层与层之间的交互尽量使用回调或者去使用消息机制去完成,尽量避免直接持有;Controller 和 View 在 Android 中无法做到彻底分离,但在代码逻辑层面一定要分清;业务逻辑被放置在 Model 层,能够更好的复用和修改增加业务。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【Android -- 准备篇】APP 项目产品介绍
下一篇:蓝桥 倍数问题 (我为什么会这么菜)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~