Khái niệm:
UML Class Diagram
Những lớp và/hoặc đối tượng trong mẫu thiết kế này:
- Subject (Stock):
+ biết các observer của nó. Bất kì đối tượng Observer nào cũng có thể quan sát chủ thế của nó.
+ cung cấp một interface để đính kèm và gỡ đính kèm các đối tượng Observer.
- ConcreteSubject (IBM):
+ lưu trữ trạng thái mối quan tâm vào ConcreteObserver
+ gửi một thông báo đến các observer của nó khi nó thay đổi trạng thái
- Observer (IInvestor): định nghĩa một interface đang cập nhật cho các đối tượng nên được thông báo khi có thay đổi trong một subject.
- ConcreteObserver (Investor):
+ bảo trì một tham chiếu đến một đối tượng ConcreteSubject
+ lưu trữ trạng thái luôn nhất quán với trạng thái của subject
+ thực thi interface cập nhật của Observer để giữ trạng thái của nó đồng nhất với trạng thái của subject
Observer: khi nào sử dụng và sử dụng ở đâu
http://cid-d0e5ddf023bf4324.office.live.com/embedicon.aspx/.Public/Design%20Pattern/ObserverRealWorld.zip
Định nghĩa một sự phụ thuộc 1-nhiều giữa các đối tượng để khi một đối
tượng thay đổi trạng thái, tất cả phụ thuộc của nó được thông báo và
cập nhật một cách tự động
Mức độ sử dụng: caoUML Class Diagram
Những lớp và/hoặc đối tượng trong mẫu thiết kế này:
- Subject (Stock):
+ biết các observer của nó. Bất kì đối tượng Observer nào cũng có thể quan sát chủ thế của nó.
+ cung cấp một interface để đính kèm và gỡ đính kèm các đối tượng Observer.
- ConcreteSubject (IBM):
+ lưu trữ trạng thái mối quan tâm vào ConcreteObserver
+ gửi một thông báo đến các observer của nó khi nó thay đổi trạng thái
- Observer (IInvestor): định nghĩa một interface đang cập nhật cho các đối tượng nên được thông báo khi có thay đổi trong một subject.
- ConcreteObserver (Investor):
+ bảo trì một tham chiếu đến một đối tượng ConcreteSubject
+ lưu trữ trạng thái luôn nhất quán với trạng thái của subject
+ thực thi interface cập nhật của Observer để giữ trạng thái của nó đồng nhất với trạng thái của subject
Observer: khi nào sử dụng và sử dụng ở đâu
Observer là một trong hai mẫu thiết kế của Gang-of-Four (mẫu thiết kế
khác là Iterator) được dùng không chỉ trong các thư viện .NET
framework, mà còn trong bản thân các ngôn ngữ .NET. Khi lập trình một
ứng dụng Web hoặc một ứng dụng Windows, bạn thường làm việc với các
event và event handler. Các event và Delegate,, hoạt động như Subject và
các Observer như được định nghĩa một cách tương ứng trong mẫu thiết kế
Observer.
Mẫu thiết kế Observer là cơ sở cho các thiết kế hướng đối tượng tốt
vì nó hỗ trợ kiểu loose coupling. Các observer đăng kí và gỡ đăng kí bản
thân chúng cũng các subject duy trì một danh sách các observer được
quan tâm. Subject này không phụ thuộc vào bất kì observer riêng biệt nào
miễn là các delegate là của đúng kiểu dành cho event đó.
Demohttp://cid-d0e5ddf023bf4324.office.live.com/embedicon.aspx/.Public/Design%20Pattern/ObserverRealWorld.zip
0 comments:
Post a Comment