2010-09-15 24 views

Trả lời

8

Tôi thường nghĩ về Decorator là "thêm" vào một số thứ, trong đó Chain Chain Responsiblity giống như xử lý thứ gì đó.

Khi so sánh hai mẫu (bên cạnh táo và cam) sự khác biệt lớn nhất là Chuỗi trách nhiệm có thể giết chết chuỗi bất kỳ lúc nào.

Hãy nghĩ trang trí là đơn vị phân lớp, trong đó mỗi lớp luôn xử lý trước/sau. Chuỗi trách nhiệm giống như một danh sách được liên kết và thông thường xử lý 1 điều.

Mẫu chuỗi trách nhiệm cho phép nhiều thứ để xử lý sự kiện nhưng nó cũng mang đến cho họ cơ hội chấm dứt chuỗi tại bất kỳ thời điểm nào.

+0

Bạn có thể cho tôi bất kỳ tình huống nào trong trường hợp nào xảy ra với Chuỗi Trách nhiệm hoặc Trang trí ...? –

+0

@Mind: Giống như Nix đã nói, táo và cam. Thay vào đó viết những gì bạn có nghĩa vụ phải làm và chúng tôi có thể giúp bạn từ đó. – Marcus

5

Kịch bản:

Suy nghĩ yêu cầu dịch vụ (thường là Quản trị viên truy cập vào máy tính xách tay), cần được sự chấp thuận của Người quản lý, Giám đốc và VP của bạn. Trong trường hợp này, mô hình Decorator sẽ hoạt động như thể ở mỗi cấp độ sẽ chỉ có ý kiến ​​từ mỗi người trong số họ và cuối cùng bạn sẽ có được một đầu ra. Vì vậy, quản lý sẽ nói 'chấp thuận và chuyển tiếp', Simlarly Giám đốc 'Ok phê duyệt và chuyển tiếp' và cuối cùng là VP 'chấp thuận'. Và đầu ra cuối cùng của bạn sẽ là sự kết hợp của tất cả 3 bình luận.

Lưu ý: chuỗi sẽ không bị ngắt bất kể yêu cầu của bạn đã được phê duyệt hoặc Bị từ chối.

Trong chuỗi trách nhiệm, ở từng giai đoạn, cá nhân có quyền phê duyệt hoặc từ chối. Và nếu ở bất kỳ cấp nào, yêu cầu bị từ chối, thì yêu cầu của bạn sẽ không tiến tới cấp độ tiếp theo, thay vào đó, hãy kết thúc bằng kết quả. Hy vọng điều này sẽ giúp :)

Các vấn đề liên quan