Tải bản đầy đủ (.pdf) (12 trang)

Bài giảng Phát triển phần mềm mã nguồn mở: MVC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (220.9 KB, 12 trang )

MVC

1


Nội dung

I. MVC là gì?
II. Tổng quan về MVC
III. Quan niệm
IV. Observer pattern

2


MVC 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


Tổ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


Quan niệm
Model
business logic

Get
State

Event

View
model representation


C
op

Set

Update

User
Actions

Change
View

State

Controller
user interaction


Quan 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


Quan 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


Quan niệm




8

Input → Process → Output

Controller → Model → View


Observer Pattern




C
op

Đị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.



Lược đồ lớp Observer
Observable

Observer

+addObserver(Observer)
+deleteObserver(Observer)
+notifyObservers(Object)

+update(Observable,
Object)

#hasChanged() : boolean
#setChanged()

AccountView
+update(Observable,
Object)

BankAccount
+widthdraw(double) : long
+deposit(double) : long
+getBalance() : double

SummaryView
+update(Observable,
Object)



Xử lý giao tác
Controller

BankAccount

AccountView

deposit()
setChanged()

notifyObservers()
update()
getBalance()
update()
getBalance()

SummaryView


Vai trò Observer






C
op


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!



×