初識MVC
MVC:M-Model-模型、V-View-視圖西采、C-Controller-控制器
M層:適合做一些業(yè)務邏輯處理夏志,比如數(shù)據(jù)庫存取操作,網(wǎng)絡操作苛让,復雜的算法沟蔑,耗時的任務等都在model層處理。
V層:應用層中處理數(shù)據(jù)顯示的部分狱杰,XML布局可以視為V層瘦材,顯示Model層的數(shù)據(jù)結果。
C層:在Android中仿畸,Activity處理用戶交互問題食棕,因此可以認為Activity是控制器,Activity讀取V視圖層用戶輸入的數(shù)據(jù)错沽,控制用戶輸入簿晓,并向Model發(fā)送數(shù)據(jù)請求。
View:對應于布局文件
Model:業(yè)務邏輯和實體模型
Controllor:對應于Activity
MVC項目結構
QQ截圖20171028161820.png
M-Model-模型千埃、V-View-視圖憔儿、C-Controller-控制器
首先,實體類User
public class User {
private String user;
private String pwd;
public User(String user, String pwd) {
this.user = user;
this.pwd = pwd;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
IUserModel
public interface IUserModel {
void login(String user, String pwd, OnLoginListener loginListener);
}
OnLoginListener
public interface OnLoginListener {
void onSuccess(User user);
void onFailed();
}
UserModel
public class UserModel implements IUserModel {
@Override
public void login(String name, String pwd, OnLoginListener listener) {
if (TextUtils.isEmpty(name) || TextUtils.isEmpty(pwd)) {
return;
}
if ("wanghao".equals(name) && "123".equals(pwd)) {
listener.onSuccess(new User(name, pwd));
}else {
listener.onFailed();
}
}
}
MainActivity
public class MainActivity extends AppCompatActivity implements OnLoginListener {
private EditText et_user;
private EditText et_pwd;
private Button bt_login;
private UserModel userModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userModel = new UserModel();
initView();
}
private void initView() {
et_user = (EditText) findViewById(R.id.et_user);
et_pwd = (EditText) findViewById(R.id.et_pwd);
bt_login = (Button) findViewById(R.id.bt_login);
bt_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
userModel.login(et_user.getText().toString(), et_pwd.getText().toString(), MainActivity.this);
}
});
}
@Override
public void onSuccess(User user) {
Toast.makeText(MainActivity.this, "歡迎" + user.getUser(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailed() {
Toast.makeText(MainActivity.this, "失敗", Toast.LENGTH_SHORT).show();
}
}
最后
個人理解放可,有什么不對的地方還請各位大神指正谒臼。