Mô hình MVC 2 M - model: Đóng gói dữ liệu, thông tin Chức năng biểu diễn, vận chuyển thông tin để trình diễn view và xử lí control... Đối chiếu hành động của user nhận từ view, vào
Trang 1Lập trình hướng đối tượng
Thiết kế theo mô hình MVC
Giảng viên: TS Nguyễn Mạnh Hùng
Học viện Công nghệ Bưu chính Viễn thông (PTIT)
Trang 3Mô hình MVC
Trang 4Mô hình MVC (1)
[image source: http://www.oracle.com/technetwork/]
Trang 5Mô hình MVC (2)
M - model:
Đóng gói dữ liệu, thông tin
Chức năng biểu diễn, vận chuyển thông tin
để trình diễn (view) và xử lí (control)
Trang 6 Đối chiếu hành động của user (nhận từ
view), vào tập chứ năng để xử lí, đồng thời chọn hành động đưa view ra để show
Trang 7Mô hình MVC (4)
V - view:
Giao diện với người dử dụng
Show các kết quả xử lí của tầng control
Thu nhận các hoạt động, yêu cầu của
người sử dụng và chuyển cho tầng control
xử lí
Trang 8MVC cải tiến (1)
[image source: http://www.oracle.com/technetwork/]
Trang 10Các lớp thực thể
Đóng gói dữ liệu, thông tin
Chỉ chứa các thuộc tính và các phương
thức truy cập các thuộc tính (javaBean)
Chức năng biểu diễn, vận chuyển thông tin
để trình diễn (view) và xử lí (control)
Trang 11Các lớp điều khiển
Cập nhật thông tin vào DB (thông tin chứa
trong các thực thể)
Thực hiện các tính toán, xử lí trung gian
Đối chiếu hành động của user (nhận từ
view), vào tập chứ năng để xử lí, đồng thời chọn hành động đưa view ra để show
Trang 12Các lớp giao diện
Các frame, cửa sổ của ứng dụng
(javaSwing)
Các trang giao diện web: html, jsp
Các bảng, mẫu biểu, báo cáo in ra
Trang 13Ví dụ:
điều khiển đăng nhập từ dòng lệnh
Trang 14public void setPassword(String password) {
this password = password;
}
public String getUserName() {
return userName ;
}
public void setUserName(String userName) {
this userName = userName;
}
}
Trang 15public void showMessage(String smg){
System.out.println(smg);
}
Trang 16Login: View (2)
public LoginModel getUserInfo(){
LoginModel user = new LoginModel();
try {
Scanner input = new Scanner(System.in);
System.out.print( "Username: " );
user setUserName( input nextLine());
System.out.print( "Password: " );
user setPassword( input nextLine());
input close();
} catch (IOException e){
System.out.println(e);
}
return user ;
}
}
Trang 17public LoginControl(LoginView view){
this view = view;
view showMessage( "wrong username or password!" );
} }
}
Trang 18Login: Control (2)
private boolean checkLogin(){
if (( user getUserName().equals( "sa" ))
&&( user getPassword().equals( "sa" ) )){
return true ; }
return false ;
}
}
Trang 19Login: main
public class LoginMVC {
public static void main(String[] args){
LoginView view = new LoginView();
LoginControl control = new LoginControl( view );
}
}
Trang 20Bài tập (1)
Bài toán tìm USCLN: người dùng nhập vào hai
số nguyên dương a và b Chương trình
hiện lên USCLN của chúng
Viết model cho bài toán này
Viết phần view cho bài toán này
Viết phần control cho bài toán này
Trang 21Bài tập (2)
Bài toán giải phương trình bậc hai: người
dùng nhập vào các hệ số a, b, c chương
trình hiện lên số nghiệm và giá trị các
nghiệm của phương trình
Viết model cho bài toán này
Viết phần view cho bài toán này
Viết phần control cho bài toán này
Trang 22Bài tập (3)
Cài đặt lại ví dụ đăng nhập đã cho trong bài,
với thông tin về người dùng được lưu trong CSDL
Viết model cho bài toán này
Viết phần view cho bài toán này
Viết phần control cho bài toán này
Trang 23Questions?