Sơ đồ lớp mẫu Mediator

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Phát triển mẫu thiết kế phần mềm và ứng dụng (Trang 46 - 48)

 Mediator (IChatroom): định nghĩa một giao diện cho việc giao tiếp với đối tƣợng cộng tác.

 ConcreteMediator (Chatroom)

 Xây dựng các hành vi tƣơng tác giữa các đối tƣợng colleague  Xác định các đối tƣợng colleague

 Colleague classes (Participant)

 Mỗi lớp Colleague đều xác định đối tƣợng Mediator tƣơng ứng

 Giảm liên kết giữa các colleagues.

 Đơn giản hoá giao thức giữa đối tƣợng bằng cách thay các tƣơng tác nhiều - nhiều bằng tƣơng tác 1 - nhiều giữa nó và các colleagues.

 Trừu tƣợng hoá cách thức tƣơng tác hợp tác giữa các đối tƣợng. Tạo ra sự tách biệt rõ ràng hơn giữa các tƣơng tác ngoài và các đặc tính trong của đối tƣợng.

 Điều khiển trung tâm: thay sự phức tạp trong tƣơng tác bằng sự phức tạp tại mediator.

Ứng dụng mediator vào trong các trƣờng hợp sau :

 Một nhóm các đối tƣợng trao đổi thông tin một cách rõ ràng nhƣng khá phức tạp dẫn đến hệ thống các kết nối không có cấu trúc và khó hiểu.

 Việc sử dụng lại một đối tƣợng gặp khó khăn vì nó liên kết với quá nhiều đối tƣợng khác.

 Cho phép tuỳ biến một ứng xử đƣợc phân tán trong vài lớp mà không phải phân nhiều lớp con.

Facade khác với Mediator ở chỗ nó trừu tƣợng một hệ thống con của các đối tƣợng để cung cấp một giao diện tiện ích hơn. Giao thức của nó theo một hƣớng duy nhất đó là, các đối tƣợng Facade tạo ra các yêu cầu của các lớp hệ thống con nhƣng không có chiều ngƣợc lại. Ngƣợc lại Mediator cho phép các hành vi kết hợp mà các đối tƣợng cộng tác không thể cung cấp và giao thức này là không đa hƣớng.

Các cộng tác có thể đi giao tiếp với Mediator bằng cách sử dụng mẫu Observer.

1.3.3.6. Memento

Đôi lúc, việc lƣu lại trạng thái của một đối tƣợng là cần thiết. Ví dụ khi xây dựng cơ chế checkpoints và undo để phục hồi hệ thống khỏi trạng thái lỗi. Tuy nhiên các đối tƣợng thƣờng phải che dấu một vài hoặc tất cả các thông tin trạng thái của mình, làm cho chúng không thể đƣợc truy cập từ ngoài.

Chúng ta có thể giải quyết vấn đề này với mẫu Memento. memento là đối tƣợng có chức năng lƣu lại trạng thái nội tại của một đối tƣợng khác gọi là memento's originator. Cơ chế undo sẽ yêu cầu một memento từ originator khi nó cần khôi phục lại trạng thái của originator. Cũng chỉ originator mới có quyền truy xuất và lƣu trữ thông tin vào memento vì nó trong suốt đối với các đối tƣợng còn lại.

Định nghĩa: Memento là mẫu thiết kế có thể lƣu lại trạng thái của một đối tƣợng để khôi phục lại sau này mà không vi phạm nguyên tắc đóng gói.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Phát triển mẫu thiết kế phần mềm và ứng dụng (Trang 46 - 48)

Tải bản đầy đủ (PDF)

(113 trang)