Mẫu Chuỗi các trách nhiệm

Một phần của tài liệu Nghiên cứu các mẫu thiết kế và ứng dụng để xây dựng hệ thống quản lý thông tin tổng thể cho doanh nghiệp (Trang 25)

4. Tóm tắt cấu trúc của luận văn

1.3.5. Mẫu Chuỗi các trách nhiệm

1.3.5.1. Ý nghĩa

Mẫu Chuỗi các trách nhiệm cho phép ựối tượng gửi yêu cầu (Sender), có thể không cần biết ựến ựối tượng sẽ nhận yêu cầu ựó (Receiver), bằng cách thêm vào các ựối tượng một phương thức ựể có thể nắm giữ yêu cầu. Các ựối tượng sẽ ựược tổ chức thành một chuỗi mắt xắch, yêu cầu ựược gửi sẽ ựược duyệt theo chuỗi mắt xắch này cho ựến khi có một ựối tượng trong mắt xắch nhận lấy yêu cầu của nó.

1.3.5.2. Mô tả

Mẫu này tổ chức hệ thống các ựối tượng thành một chuỗi mắt xắch từ cụ thể ựến tổng quát. Mỗi ựối tượng trong mắt xắch này sẽ ựược cung cấp một phương thức ựể có thể nắm giữ và xử lý yêu cầu. Yêu cầu sẽ ựược trượt qua chuỗi mắt xắch này theo thứ tự, từng ựối tượng trong mắt xắch sẽ ựược nhận yêu cầu. Nếu ựúng là yêu cầu dành cho nó thì nó sẽ xử lý, nếu không yêu cầu sẽ tiếp tục gửi ựi cho các mắt xắch ựằng sau nó.

1.3.5.3. Cấu trúc mẫu

Hình 1.8.1: Cấu trúc mẫu Chain of Responsibility

Có thể mô tả cấu trúc của mẫu theo cách sau:

Hình 1.8.2: Cấu trúc mẫu Chain of Responsibility

Các thành phần tham gia vào cấu trúc mẫu Chain of Responsibility:

Handler: định nghĩa một giao tiếp chung cho việc nắm giữ yêu cầu. Cài ựặt một con trỏ kết nối Successor tới các Handler khác.

ConcreteHandler: Nắm giữ yêu cầu mà nó chịu trách nhiệm. Các

ConcreteHandler có thể truy xuất ựối tượng ựược liên kết bởi con trỏ kết nối

Successor của nó. Nếu nó có thể nắm giữ yêu cầu ựược gửi ựến, nó sẽ thực

hiện. Nếu không thì nó sẽ tiếp tục gửi yêu cầu cho Successor của nó ựể chuyên yêu cầu cho ựối tượng kế tiếp.

Client: Kắch hoạt yêu cầu cho một ựối tượng ConcreteHandle trong chuỗi mắt xắch. Khi Client kắch hoạt một yêu cầu, yêu cầu này sẽ ựược gửi ựi theo chuỗi mắt xắch cho ựến khi có một ựối tượng ConcreteHandler nào ựó nhận yêu cầu này ựể xử lý.

Khi muốn gửi một yêu cầu tới nhiều ựối tượng khác nhau mà không cần phải xác ựịnh rõ ràng ựó là ựối tượng nào.

Khi tập các ựối tượng giữ yêu cầu cần ựược xác ựịnh một cách linh ựộng.

1.3.5.5. Thuận lợi và hạn chế

Giúp giảm sự phụ thuộc giữa các ựối tượng: mẫu này giải phóng một ựối tượng khi biết ựối tượng khác ựang nắm giữ yêu cầu. Cả ựối tượng gửi và nhận ựều không biết nhau và một ựối tượng trong chuỗi mắt xắch không cần phải biết cầu trúc của chuỗi mắt xắch.

Việc giao nhiệm vụ cho các ựối tượng ựược thực hiện một cách linh hoạt. Mẫu này cho phép phân phối công việc giữa các ựối tượng một cách linh hoạt, có thể thêm hoặc thay ựổi việc nắm giữ các yêu cầu bằng cách thêm hay làm thay ựổi chuỗi mắt xắch ở thời ựiểm chạy chương trình.

Nhược ựiểm của mẫu này là việc xác nhận ựược yêu cầu này có ựược xử lý hay không, yêu cầu có thể ựi ựến cuối chuỗi mắt xắch mà không ựược xử lý. Một yêu cầu cũng có thể không ựược xử lý nếu chuỗi mắt xắch không ựược cấu hình một cách phù hợp.

Một phần của tài liệu Nghiên cứu các mẫu thiết kế và ứng dụng để xây dựng hệ thống quản lý thông tin tổng thể cho doanh nghiệp (Trang 25)

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

(119 trang)