1 / 1
M-V-C分別是什么 代碼舉例
1 / 1
MVC是一種常見的架構(gòu)模式飞傀,由三個主要組件組成:
- Model:表示應用程序的數(shù)據(jù)和業(yè)務邏輯拍鲤。
- View:表示應用程序的用戶界面绘面。
- Controller:表示應用程序的邏輯控制器弟孟,處理來自用戶界面的輸入并更新Model和View上荡。
以下是MVC的一個簡單示例代碼:
java
// Model
public class User {
private String name;
private String email;
// Getters and Setters
}
// View
public class UserView {
public void displayUser(String name, String email) {
System.out.println("Name: " + name);
System.out.println("Email: " + email);
}
}
// Controller
public class UserController {
private User model;
private UserView view;
public UserController(User model, UserView view) {
this.model = model;
this.view = view;
}
public void updateUser(String name, String email) {
model.setName(name);
model.setEmail(email);
}
public void displayUser() {
String name = model.getName();
String email = model.getEmail();
view.displayUser(name, email);
}
}
// Usage
public static void main(String[] args) {
User user = new User();
user.setName("John");
user.setEmail("john@example.com");
UserView userView = new UserView();
UserController userController = new UserController(user, userView);
// Update user information
userController.updateUser("Jane", "jane@example.com");
// Display user information
userController.displayUser();
}
在這個例子中讶泰,Model是User類扎酷,View是UserView類檐涝,Controller是UserController類。UserController充當中介者霞玄,協(xié)調(diào)User和UserView之間的通信骤铃。在main函數(shù)中,我們創(chuàng)建了一個User實例坷剧,并使用UserController來更新和顯示用戶信息惰爬。
1 / 1
在android中M-V-P分別是什么 代碼舉例
1 / 1
在Android開發(fā)中,MVP是一種常見的架構(gòu)模式惫企,由三個主要組件組成:
- Model:表示應用程序的數(shù)據(jù)和業(yè)務邏輯撕瞧。
- View:表示應用程序的用戶界面。
- Presenter:表示應用程序的邏輯控制器狞尔,處理來自用戶界面的輸入并更新Model和View丛版。
以下是MVP的一個簡單示例代碼:
java
// Model
public class User {
private String name;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
// View
public interface UserView {
void showUser(User user);
}
// Presenter
public class UserPresenter {
private User model;
private UserView view;
public UserPresenter(User model, UserView view) {
this.model = model;
this.view = view;
}
public void updateUser(String name, String email) {
model.setName(name);
model.setEmail(email);
view.showUser(model);
}
}
// Usage
public class MainActivity extends AppCompatActivity implements UserView {
private EditText nameEditText;
private EditText emailEditText;
private Button saveButton;
private UserPresenter presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initialize views
nameEditText = findViewById(R.id.nameEditText);
emailEditText = findViewById(R.id.emailEditText);
saveButton = findViewById(R.id.saveButton);
// Initialize presenter
User user = new User();
presenter = new UserPresenter(user, this);
// Set click listener on save button
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = nameEditText.getText().toString();
String email = emailEditText.getText().toString();
presenter.updateUser(name, email);
}
});
}
@Override
public void showUser(User user) {
nameEditText.setText(user.getName());
emailEditText.setText(user.getEmail());
}
}
在這個例子中,Model是User類页畦,View是UserView接口,Presenter是UserPresenter類研儒。UserPresenter充當中介者豫缨,協(xié)調(diào)User和UserView之間的通信独令。在MainActivity中,我們初始化了UserPresenter并將其與UserView關聯(lián)好芭。當用戶單擊保存按鈕時燃箭,我們使用UserPresenter來更新User并將其顯示在UserView中。在此示例中舍败,UserView是MainActivity招狸,并且實現(xiàn)了showUser方法,該方法用于顯示User信息邻薯。
1 / 1
在android中M-V-V-M分別是什么 代碼舉例
1 / 1
在Android開發(fā)中裙戏,MVVM是一種常見的架構(gòu)模式,由三個主要組件組成:
- Model:表示應用程序的數(shù)據(jù)和業(yè)務邏輯弛说。
- View:表示應用程序的用戶界面挽懦。
- ViewModel:表示應用程序的邏輯控制器,處理來自用戶界面的輸入并更新Model和View木人。
以下是MVVM的一個簡單示例代碼:
java
// Model
public class User {
private String name;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
// View
public class MainActivity extends AppCompatActivity {
private EditText nameEditText;
private EditText emailEditText;
private Button saveButton;
private UserViewModel viewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initialize views
nameEditText = findViewById(R.id.nameEditText);
emailEditText = findViewById(R.id.emailEditText);
saveButton = findViewById(R.id.saveButton);
// Initialize view model
viewModel = new ViewModelProvider(this).get(UserViewModel.class);
// Set observer on user live data
viewModel.getUserLiveData().observe(this, new Observer<User>() {
@Override
public void onChanged(User user) {
nameEditText.setText(user.getName());
emailEditText.setText(user.getEmail());
}
});
// Set click listener on save button
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = nameEditText.getText().toString();
String email = emailEditText.getText().toString();
viewModel.updateUser(name, email);
}
});
}
}
// ViewModel
public class UserViewModel extends ViewModel {
private MutableLiveData<User> userLiveData = new MutableLiveData<>();
private User user = new User();
public UserViewModel() {
userLiveData.setValue(user);
}
public LiveData<User> getUserLiveData() {
return userLiveData;
}
public void updateUser(String name, String email) {
user.setName(name);
user.setEmail(email);
userLiveData.setValue(user);
}
}
在這個例子中,Model是User類冀偶,View是MainActivity類醒第,ViewModel是UserViewModel類。UserViewModel充當中介者进鸠,協(xié)調(diào)User和MainActivity之間的通信稠曼。在MainActivity中,我們初始化了UserViewModel并將其與MainActivity關聯(lián)客年。當用戶單擊保存按鈕時霞幅,我們使用UserViewModel來更新User并將其顯示在MainActivity中。在此示例中量瓜,UserLiveData是LiveData<User>對象司恳,用于在ViewModel和View之間共享數(shù)據(jù)。當ViewModel更新User時绍傲,LiveData會自動通知View進行更新扔傅。