先介绍下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机制对应用回收的一种处理)的。
我的代码结构:
我就不重新创建一个项目了,就从已有的项目来讲解了,忽略其他的包先吧。
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类