11/11/2019
Lập trình Ứng dụng quản lý
Model – View – Presenter Pattern
Nội dung
Khái niệm Design Pattern
MVC, MVP Pattern
Winform MVP
1
11/11/2019
Nội dung
Khái niệm Design Pattern
MVC, MVP Pattern
Winform MVP
Khái niệm Design Pattern
Mẫu thiết kế (Design Pattern) là vấn đề thông
dụng cần giải quyết và là cách giải quyết vấn đề
đó trong một ngữ cảnh cụ thể, Mẫu thiết kế tuân
thủ nghiêm ngặt các nguyên lý thiết kế hướng đối
tượng ở trên.
Mẫu thiết kế không đơn thuần là một bước nào
đó trong các giai đoạn phát triển phần mềm mà
nó đóng vai trị là sáng kiến để giải quyết một vấn
đề thơng dụng nào đó. Mẫu thiết kế sẽ giúp cho
việc giải quyết vấn đề nhanh, gọn và hợp lý hơn.
Mẫu thiết kế còn được sử dụng nhằm cô lập các
thay đổi trong mã nguồn, từ đó làm cho hệ thống
có khả năng tái sử dụng cao.
2
11/11/2019
Mơ hình ứng dụng chung
Xu hướng xây dựng UI
Trong các nền tảng lập trình hiện đại như .NET,
khi các cơng cụ và kỹ thuật hỗ trợ lập trình giao
diện người dùng (UI) ngày càng trở nên mạnh mẽ
và tiện dụng thì người phát triển có xu hướng
đưa nhiều xử lý bên ngồi vào các lớp UI.
Khó khăn:
UI là thành phần có nhiều thay đổi nhất.
Việc kiểm thử qua UI phải thực hiện thủ công hoặc
bằng script (thực hiện tương tác).
Code xử lý trong UI bị trùng lặp.
3
11/11/2019
Tương tác trong single view
Ví dụ
4
11/11/2019
Giải pháp xây dựng ứng dụng tương tác
Mục tiêu thiết kế tách rời xử lý UI với xử lý logic
của ứng dụng để có được kiến trúc tốt.
Các mẫu thiết kế kiến trúc UI tách rời các thành
phần xử lý với thành phần thể hiện ra đời như:
MVC, MVP, MVVM,… phù hợp trên mỗi nền tảng
nhất định (dựa vào sự đáp ứng tương tác).
Nội dung
Khái niệm Design Pattern
MVC, MVP Pattern
Winform MVP
5
11/11/2019
MVC pattern
Model-View-Controller (MVC) pattern chia nhỏ các
thành phần dữ liệu, thể hiện (output) và dữ liệu nhập
từ người dùng (input) thành những thành phần riêng
biệt.
Model chứa dữ liệu và các tính tốn xử lý logic để giải
quyết vấn đề mà phần mềm hướng tới (business logic).
View là thành phần đảm nhận việc thể hiện những dữ
liệu của Model. View bao gồm những gì thể hiện trên
màn hình như các control, form… Trên cùng một Model,
có thể có nhiều View.
Controller là thành phần đảm nhận việc xử lý đáp trả lại
các dữ liệu được đưa vào từ người dùng như các sự
kiện chuột, bàn phím, các tương tác lên các control…
Controller là cầu nối giữa người dùng và ứng dụng.
Mơ hình MVC cơ bản
Controller
View
Model
6
11/11/2019
MVC Observer Pattern
Controller
View
Model
Mơ hình tương tác
7
11/11/2019
Ví dụ
MVP Pattern
Model-View-Presenter (MVP) Pattern ra đời từ
sau thập niên 90, là sự cải tiến từ MVC pattern
với các đặc điểm:
Presenter đảm nhận các chức năng của Controller.
View tiếp nhận và hồi đáp tương tác người dùng
thông qua event (phù hợp với nền tảng desktop).
Giúp xử lý các trạng thái thay đổi phức tạp của
Model.
Lưu giữ được UI state.
8
11/11/2019
MVP cơ bản
Model chứa dữ liệu và các tính toán xử lý logic.
View là thành phần đảm nhận trình bày từ những dữ
liệu của Model.
Presenter là thành phần đảm nhận các xử lý về trình
bày mà nó cần đến sự tương tác trên dữ liệu.
MVP – Passive View
Presenter
View
Model
9
11/11/2019
MVP – Supervising Controller
Presenter
View
Model
Mơ hình tương tác
10
11/11/2019
Ví dụ
Nội dung
Khái niệm Design Pattern
MVC, MVP Pattern
Winform MVP
11
11/11/2019
Mơ hình
Model chứa dữ liệu và các tính tốn xử lý logic.
View là thành phần đảm nhận trình bày từ những dữ liệu của Model và
là tổng hợp của các form, control được sử dụng.
Presenter là thành phần đảm nhận các xử lý về trình bày cũng như
tương tác đến dữ liệu bên dưới và có thể tương tác để thay đổi View
trong quá trình xử lý.
Tương tác
12
11/11/2019
Mơ hình áp dụng thực tế
Minh họa
Xây dựng ứng dụng xử lý cơ bản dữ liệu
Category trong database QLBH.
13