-----
3.2.3 Design pattern, mô hình 3-layers, MVC
Xem clip sau (lưu ý: tác giả trình bày dễ hiểu, tuy nhiên do
tác giả không quan tâm tới việc đặt tên chuẩn, nên cách phân lớp và đặt tên chưa
chính xác):
Mẫu thiết kế (design
pattern)
Theo wiki[1],
trong công nghệ phần mềm, một mẫu thiết kế là một giải pháp tổng thể cho các vấn đề
chung trong thiết kế phần mềm. Một mẫu thiết kế không phải là một thiết
kế hoàn thiện để mà có thể được chuyển đổi trực tiếp thành mã; nó chỉ
là một mô tả hay là sườn (template) mô tả cách giải quyết một vấn đề mà
có thể được dùng trong nhiều tình huống khác nhau. Các mẫu thiết kế hướng đối
tượng thường cho thấy mối quan hệ và sự tương tác giữa các lớp hay các đối tượng,
mà không cần chỉ rõ các lớp hay đối tượng của từng ứng dụng cụ thể. Các giải
thuật không được xem là các mẫu thiết kế, vì chúng giải quyết các vấn đề về
tính toán hơn là các vấn đề về thiết kế.
Mẫu thiết kế giúp chương trình linh hoạt, dễ thay đổi, dễ bảo
trì.
Mẫu thiết kế được chia thành ba nhóm chính, mỗi nhóm có nhiều
mẫu. Cụ thể:
– Nhóm khởi tạo (creational pattern): dùng nhiều trong việc khởi
tạo đối tượng. Gồm các mẫu: Abstract Factory, Builder, Factory Method, Multiton,
Pool, Prototype, Simple Factory, Singleton, Static Factory
– Nhóm cấu trúc (structural pattern): dùng trong việc thiết
lập, định nghĩa quan hệ giữa các đối tượng. Gồm các mẫu: Adapter/ Wrapper, Bridge,
Composite, Data Mapper, Decorator, Dependency Injection, Façade, Fluent Interface,
Flyweight, Registry, Proxy
– Nhóm hành vi (behavioral pattern): dùng trong việc thực hiện
các hành vi của đối tượng. Gồm các mẫu: Chain Of Responsibilities, Command, Iterator,
Mediator, Memento, Null Object, Observer, Specification, State, Strategy, Template
Method, Visitor, Delegation, Service Locator, Repository, Entity-Attribute-Value
(EAV)
Đọc thêm về Mẫu thiết kế tại đây:
Mô hình 3-layers
Đọc một số bài viết
sau:
https://techtalk.vn/mo-hinh-3-lop-co-gi-hay.html
(để ý, cái hình vẽ có nhầm một chút, Business layer bị lặp lại 2 lần)
Mô hình 3-layers là một dạng của design pattern.
[Xem hình minh họa về mô hình 3-layers]
[Hình minh họa chi tiết hơn về mô hình 3-layers]
Mô hình 3-layers gồm 3 lớp:
– Presentation Layer (hay GUI layer– Graphic User Interface):
giao tiếp với người dùng, gồm các thành phần giao diện và thực hiện các công việc
như nhập liệu, hiển thị dữ liệu, kiểm tra tính đúng đắn dữ liệu trước khi gọi lớp
Business Logic Layer (BLL)
– Business Logic Layer (BLL): là nơi đáp ứng các yêu cầu
thao tác dữ liệu của Presentation Layer, xử lý chính nguồn dữ liệu từ
Presentation Layer trước khi truyền xuống Data Access Layer và lưu xuống hệ quản
trị CSDL; là nơi kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ dữ liệu, thực
hiện tính toán và xử lý các yêu cầu nghiệp vụ, trước khi trả kết quả về
Presentation Layer
– Data Access Layer (DAL): có chức năng giao tiếp với hệ quản
trị CSDL, như thực hiện các công việc liên quan đến lưu trữ và truy vấn dữ liệu
(tìm kiếm, thêm, xóa, sửa). Còn có tên gọi khác là DAO (Data Access Object).
Ngoài ra có thể còn có một lớp phụ, có tên là DTO (Data Transfer
Object), định nghĩa các class tương ứng với các table trong database, định
nghĩa cột của nó, cũng như để gán dữ liệu khi truy vấn.
Cách hoạt động của 3-layers:
– Đầu tiên người dùng giao tiếp với Presentation Layer (GUI)
để gửi đi thông tin và yêu cầu. Tại lớp này, các thông tin sẽ được kiểm tra, nếu
vượt qua được việc kiểm tra, chúng sẽ được chuyển xuống Business Logic Layer
(BLL).
– Tại BLL, các thông tin sẽ được biến đổi, tính toán theo
đúng yêu cầu đã gửi, nếu không cần đến Database thì BLL sẽ gửi trả kết quả về
GUI, ngược lại nó sẽ đẩy dữ liệu (thông tin đã xử lý) xuống Data Access Layer
(DAL).
– DAL sẽ thao tác với Database và trả kết quả về cho BLL,
BLL kiểm tra và gửi nó lên GUI để hiển thị cho người dùng.
– Nếu gặp lỗi (các trường hợp không đúng dữ liệu), thông tin
về lỗi sẽ được gửi lên lớp phía trên, khi tới GUI sẽ hiển thị ra cho người
dùng. Các dữ liệu được trung chuyển giữa các lớp thông qua một đối tượng gọi là
Data Transfer Object (DTO), đơn giản đây chỉ là các class đại diện cho các đối
tượng được lưu trữ trong Database
Mô hình MVC
Mô hình MVC (Model - View - Controller) là một kiến trúc phần
mềm hay mô hình thiết kế, được sử dụng trong kỹ thuật phần mềm. Nó giúp tách ứng
dụng ra 3 thành phần khác nhau gồm Model, View và Controller. Mỗi thành phần có
nhiệm vụ riêng và độc lập với các thành phần khác. Các thành phần của MVC:
– Model: là thành phần chứa tất cả các nghiệp vụ logic,
phương thức xử lý, truy xuất database, đối tượng mô tả dữ liệu như các class,
hàm xử lý
– View: đảm nhận việc hiển thị thông tin, tương tác với người
dùng, nơi chứa tất cả các đối tượng GUI (hiểu nôm na là các control: ví dụ textbox,
combobox, listview)
– Controller: có nhiệm vụ nhận các yêu cầu từ người dùng và
gọi đúng những phương thức xử lý chúng để thao tác trực tiếp với Model.
[Xem hình minh họa]
Cách làm việc của mô hình MVC
– Người dùng tương tác với View, bằng cách bấm vào một nút
trên giao diện, sự kiện sẽ được gửi đi.
– Controller nhận và chuyển chúng đến đúng phương thức xử lý
ở Model
– Model nhận thông tin và thực thi các yêu cầu
– Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ
Model và hiển thị kết quả cho người dùng
</////
hết buổi 16
-----
Tiếp theo: Lập trình UD Desktop_15 -
Xem thêm: Danh sách các bài học