// * model(模型)-表示攜帶數據的對象。它也可以具有邏輯來更新控制器,如果其數據改變。
public class Employee {
private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
|
// * view(視圖)-視圖表示模型包含數據的可視化。通常它有UI邏輯
public class EmployeeView {
public void printEmployeeDetails(String name, String no) { System.out.println("Employee:"); System.out.println("Name:" + name); System.out.println("ID" + no); } } |
//* controller(控制器)-控制器引用模型包含的數據的可視化。 //它控制數據流進入模型對象,並在數據更改時更新視圖。它保持視圖和模型分開。
public class EmployeeController {
private Employee model; private EmployeeView view; public EmployeeController(Employee model,EmployeeView view){ this.model=model; this.view=view; } //設置僱員名稱 public void setEmployeeName(String name){ model.setName(name); } //獲取僱員名稱 public String getEmployeeName(){ return model.getName(); } //設置僱員ID public void setEmployeeId(String rollNo){ model.setId(rollNo); } //獲取僱員ID public String getEmployeeId(){ return model.getId(); } //更新視圖 模型名稱、模型ID public void updateView(){ view.printEmployeeDetails(model.getName(), model.getId()); } }
|
//分別創建對象,打印 更新數據,打印 public class Main {
public static void main(String[] args){ Employee model = new Employee(); model.setName("Tom"); model.setId("1"); EmployeeView view = new EmployeeView(); EmployeeController controller = new EmployeeController(model, view); controller.updateView(); controller.setEmployeeName("New Name"); controller.updateView(); /**Employee: Name:Tom ID1 Employee: Name:New Name ID1 */ } }
|