MVC 全稱Model View Controller 換成中文理解就是模型層、 視圖層、 控制層java
MVC模式是把項目編程分紅三個層次數據庫
模型層 - 進行業務邏輯處理、數據請求。編程
視圖層 - 數據展現。在layout.xml佈局、自定義佈局控件進行展現ide
控制層 - 把客戶與視圖層的交互操做指令集合,傳遞給模型層佈局
個人理解核心全在這圖設計
具體Android項目小功能演示:code
簡單例子-添加新用戶:xml
編程思路:點擊保存按鈕, 獲取EditText輸入的用戶名、密碼,再調用後臺接口去更改數據庫表的記錄,並根據接口返回狀態去處理不一樣的結果,展現給用戶看.接口
模式MVC編程整理: 事件
一、客戶與視圖層交互,輸入用戶名、密碼,並點擊保存按鈕。
二、控制層須要把用戶信心發送到模型層。
三、模型層把用戶信息進行業務邏輯操做,暴露接口返回處理好的數據
四、選擇設計規定的視圖層顯示返回的數據
根據模式編程思路:
項目目錄
一、點擊事件,Android角度出發控制層能夠當作是Activity
tv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //發送用戶信息到模型層 } });
二、模型層構建
public class UserModel implements UserGetIml{ @Override public void getData(String name, String password, onAddComplectedListener listener) { User user= new User(name, password); if (listener != null) { listener.success(user); } } }
public interface UserGetIml { void getData(String name, String password, onAddComplectedListener listener); }
public interface onAddComplectedListener { void success (User user); }
三、視圖層
userModel = new UserModel(); tv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //發送用戶信息到模型層 userModel.getData(name, password , new onAddComplectedListener() { @Override public void success(User user) { //交給視圖層顯示 tv.setText(user.getName()); } }); } })
Android MVC弊端:
從上面代碼你們就能看出緣由, Activity 能夠說又是扮演控制層又扮演視圖層.並無很好分割開。