Bài giảng Phát triển phần mềm mã nguồn mở: MVC cung cấp cho người học các kiến thức: MVC là gì, tổng quan về MVC, quan niệm, observer pattern. Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 11
Trang 2Nội dung
2
I MVC là gì?
II Tổng quan về MVC III Quan niệm
IV Observer pattern
Trang 3MVC LÀ GÌ?
Là một mô hình kiến trúc trong công nghệ
phần mềm
MVC tách dữ liệu ra khỏi giao diện
MVC phân tách các thành phần khác nhau của ứng dụng (input logic, business logic, và
UI logic), và cung cấp một liên kết giữa
chúng
Trang 4Tổng quan
Luồng xử lý:
Người dùng tương tác với user interface bằng cách nào đó (như click chuột)
Bộ điều khiển xử lý sự kiện đầu vào từ user interface rồi convert các sự kiện thành user action, mà model có thể hiểu được
Bộ điều khiển sẽ thông báo cho các model của user action, có thể dẫn đến một sự thay đổi trong model state
View truy vấn model để tạo ra user interface thích hợp
View lấy dữ liệu của nó từ model
Trong một số trường hợp, controller sẽ đưa ra một số chỉ định tổng quát để view có thể tự render nó
View được thông báo một cách tự động những thay đổi trong model state mà cần update lại màn hình
User interface chờ tương tác tiếp theo của người dùng, để lăp lại control flow
Trang 5op
yr
Quan niệm
View
model representation
Model
business logic
Controller
user interaction
Update Event
User Actions
Change View
Set State Get
State
Trang 6Quan niệm
Model quản lý hành vi và dữ liệu của miền ứng
dụng.
Khi xử lý sự kiện, model thông báo cho các bộ quan sát (thường là view) khi thông tin được thay đổi để
nó có phản ứng thích hợp.
View render model thành một form phù hợp cho việc tương tác
Trên cùng một model có thể có nhiều view để phục vụ cho các mục đích khác nhau
Trang 7Quan niệm
Controller tiếp nhận yêu cầu người dùng và khởi động một
respond bằng cách gọi đối tượng model
Controller nhận yêu cầu từ người dùng rồi chỉ định cho model và view thực hiện hành động dựa trên yêu cầu đó
Một ứng dụng MVC là tập hợp của nhiều bộ ba model –
controller – view, mỗi bộ chịu trách nhiệm với một UI khác nhau
MVC thường thấy trên các ứng dụng web mà view là HTML hoặc XHTML được sinh ra bởi ứng dụng
Controller nhận GET hoặc POST input và quyết định sẽ làm gì với nó
Model không chỉ đơn thuần là một cơ sở dữ liệu, model trong
MVC là cả dữ liệu và logic nghiệp vụ cần thiết để thao tác dữ liệu trong ứng dụng
Trang 8Quan niệm
Input → Process → Output
↔
Controller → Model → View
8
Trang 9op
yr
Observer Pattern
Định nghĩa phụ thuộc {một – nhiều} giữa các đối tượng sao cho khi một đối tượng thay đổi trạng thái, tất cả các phụ thuộc của nó sẽ tự động được thông báo và cập nhật.
Dùng để tách chủ đề khỏi observer, do chủ đề cần ít thông tin để đánh thức observer.
Trang 10Lược đồ lớp Observer
Observable
+addObserver(Observer)
+deleteObserver(Observer)
+notifyObservers(Object)
#hasChanged() : boolean
#setChanged()
Observer +update(Observable,
Object)
AccountView +update(Observable,
Object) BankAccount
+widthdraw(double) : long
+deposit(double) : long
+getBalance() : double
SummaryView +update(Observable,
Object)
Trang 11Xử lý giao tác
Controller BankAccount AccountView SummaryView
deposit()
setChanged()
notifyObservers()
update()
update() getBalance()
getBalance()
Trang 12op
yr
Vai trò Observer
Observer pattern cho phép lớp BankAccount đánh thức nhiều views không cần thông tin tối thiểu.
Observers có thể tự đăng ký với các chủ đề của chúng Không kèm theo chuỗi nào!
Các giao tác là nguyên nhân làm thiết kế này đổ vỡ dưới các thông báo giả tạo!