先介绍下MVC模式:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

使用MVC模式编写代码,能使代码更加美观,更容易管理,扩展性强。

对于Android来说,MVC模式本身也使用到了。

1、界面XML文件就是View(V);

2、model层就是一些数据的操作,网络的处理等,

3、controller层就是对activity的逻辑处理,但是要割除model中的数据、网络等的逻辑处理,因为耗时的处理在主线程上,处理超过5S就会出现ANR(超时时android机制对应用回收的一种处理)的。

我的代码结构:

android mvvm 设计模式 android中的mvc模式_MVC


我就不重新创建一个项目了,就从已有的项目来讲解了,忽略其他的包先吧。

activities包(View),顾名思义这里包含了所有的activity,做的事情就是对应着fragment,代码实现如下:

public class AdminAddGoodsActivity extends BaseFramActivty{

	@Override
	protected void onCreate(Bundle bundle) {
		super.onCreate(bundle);
		initTitle("添加商品", 1, 0, new TitleImgClick() {
			@Override
			public void OnTitleImgClick(com.views.lib.tab.interfaces.Method method) {
				switch (method) {
				case left:
					AndroidUtils.isGiveUpEdit(AdminAddGoodsActivity.this);
					
					break;

				case right:

					break;

				default:
					break;
				}

			}
		});

		switchFram(new AddGoodsFragment());
	}
}

这里的BaseFramActivity和switchFram是Lib里面的实现的,之后会讲到的,现在先保留着先。

代码里面的Activity对应的就是AddGoodsFragment,fragment里面才实现界面的初始化。

adapter包,实现数据和UI(View)之间一个重要的纽带,直观的表达了Data、Adapter、View三者的关系。主要是实现list等的数据初始化。

config,一些配置的信息。

dao、ctrler(controller),用来实现与model层的业务逻辑处理,通过此类,获取数据然后返回到activity中进行数据的显示。

db也就是数据库的操作了。

model(model),也就是一些实体类了。

utils,放的是一些工具类。

view,是自己自定义的view类