MVC设计架构与MVP设计架构
MVC(Model-View-Controller,模型-视图-控制器)
架构设计的目的:
为实现应用开发中各模块间的低耦合,以及模块内的高内聚。使软件的体系结构更加清晰,因此在项目应用开发中提出多种架构模式,本文主要介绍Android应用开发中的MVC ,MVP架构模式。
MVC定义:
是软件工程中的一种软件架构模式。他把软件系统分为三个部分:模型(Model),视图(View),控制器(Controller),即用一种业务逻辑,数据,界面显示分离的方式组织代码。
· Model(模型)表示应用程序核心(业务逻辑操作),用于处理应用程序数据逻辑部分。
· View(视图)显示数据(界面设计),视图是依据模型数据创建的。
· Controller(控制器)处理输入(与用户的交互操作),通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC设计目的:
MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展可以容易操作,并且使程序某一部分可以重复利用。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部分分离的同时也赋予了各个基本部分应有的功能。MVC即将M和V的实现代码进行分离,从而使同一个程序可以使用不同的表现形式,而C存在的目的则是确保M和V的同步,一旦M改变,应该同步更新。
MVC优点:
· 从用户的角度出发,用户可以根据自己的需求,选择自己合适的浏览数据方式。
· 从开发者的角度,MVC把应用程序的逻辑层与界面层完全分开,界面设计人员可以直接参与到界面开发,程序员就可以把精力放在逻辑层上。从而使程序员从多重工作中解脱出来。
Android中的MVC:
Model:
数据模型,负责数据处理相关的逻辑,封装应用程序状态,响应状态查询,通知View作相应的改变,在Android中datebase、Share,Preference等都属于这一层。
View:
处理数据显示的部分,各种XML布局以及和其相关的开发工作可以视为V层,显示Model层的数据结果.
Controller:
Android中,Activity用于处理与用户交互,因此可以认为Activity是控制器,Activity读取V视图层的数据(如读取当前EditText控件的数据),控制用户输入(如EditText控件中数据的输入),并向Model发送数据请求(发起网络请求,数据库的查询与更等).
示例如下:
在一个实现用户登录如注册的Android项目开发中
controller层
对用户选择的“登录“与“操作“进行不同的控制
public class MainActivity extends Activity {
private Button register;
private Button login;
private EditText username;
private EditText passworld;
private EditText userid1;
private EditText username1;
private EditText password1;
private EditText userage1;
UserService uService;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
uService=new UserService(this);