Ví dụ về mẫu Observer

Một phần của tài liệu Tài liệu PHÂN TÍCH & THIẾT KẾ HƯỚNG ĐỐI TƯỢNG DÙNG UML pdf (Trang 175 - 176)

- Rất khó tái sử dụng phương thức này ₫ể tạo ram ột maze có ₫ặc ₫iểm khác (VD: maze trong ₫ó các phòng có thể có bom hoặc quà tặng, cửa giữa các phòng chỉ có

Ví dụ về mẫu Observer

Chương 11 : Các mẫu Creational

Spreadsheet BarChart PieChart

Database request, modification

thay ₫ổi, notification Lược ₫ồ cu trúc ca mu Observer forall o in observers o->Update(); observers Observer Update() Subject Attach(Observer) Detach(Observer) Notify() ConcreteObserver Update() observerState observerState = subject->GetState(); return subjectState(); ConcreteSubject GetState() SetState() subjectState

Bö mön Cöng nghï phền mï̀m Khoa CNTT

ĐH Bach Khoa Tp.HCM

Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML

Slide 349

‰ Subject :

ƒ biết observer của nó. Có thể có nhiều observer quan sát 1 subject.

ƒ cung cấp interface ₫ể Attach va Detach các observer vào mình. ‰ Observer :

ƒ ₫ịnh nghĩa interface hiệu chỉnh cho các ₫ối tượng mà sẽ₫ược cảnh báo ₫ể

hiệu chỉnh subject của mình. ‰ ConcreteSubject :

ƒ lưu trạng thái lưu ý tới các ₫ối tượng ConcreteObserver.

ƒ gởi cảnh báo tới các observer khi trạng thái của nó thay ₫ổi. ‰ Concretebserver :

ƒ duy trì tham khảo tới ₫ối tượng ConcreteSubject.

ƒ lưu trạng thái mà cần phải luôn nhất quán với subject của mình.

ƒ hiện thực interface hiệu chỉnh ₫ể giữ trạng thái luôn nhất quán với subject của mình.

Các phn t tham gia

Chương 11 : Các mẫu Creational

‰ Thường áp dụng mẫu State trong các trường hợp sau:

ƒ khi 1 sự trừu tượng có 2 khía cạnh phụ thuộc lẫn nhau. Bao ₫óng các khía cạnh này trong những ₫ối tượng ₫ộc lập giúp ta thay ₫ổi và dùng lại chúng

₫ộc lập.

ƒ khi việc thay ₫ổi ₫ối tượng này ₫òi hỏi phải thay ₫ổi các ₫ối tượng khác nhưng bạn không biết trước có bao nhiêu ₫ối tượng cần thay ₫ổi.

ƒ khi ₫ối tượng cần có khả năng cảnh báo các ₫ối tượng khác nhưng không muốn chúng ghép nối chặt với nhau.

Một phần của tài liệu Tài liệu PHÂN TÍCH & THIẾT KẾ HƯỚNG ĐỐI TƯỢNG DÙNG UML pdf (Trang 175 - 176)