Chuỗi mô hình trách nhiệm khác với mẫu trang trí ..?Mẫu thiết kế Chuỗi khả năng tái định vị Vs Decorator
Trả lời
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.
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í ...? –
@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
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 :)
- 1. EasyMock vs Mockito: thiết kế và khả năng bảo trì?
- 2. khả năng kiểm thử của thiết kế
- 3. Builder Vs Decorator pattern
- 4. Tài nguyên cho thiết kế biểu mẫu cửa sổ và tăng khả năng sử dụng
- 5. Mẫu thiết kế nào?
- 6. Mẫu thiết kế F #
- 7. C# Mẫu thiết kế chiến lược của Delegate vs OOP
- 8. Mẫu thiết kế "Mặt tiền"
- 9. Mẫu thiết kế kiến trúc
- 10. mẫu thiết kế tốt nhất cho "undo" tính năng
- 11. Tương đương chức năng của mẫu thiết kế nhà nước
- 12. Mẫu thiết kế Android
- 13. Mẫu thiết kế SQL
- 14. Mẫu thiết kế phần mềm kế toán
- 15. Mẫu thiết kế memcache PHP
- 16. Đề xuất mẫu thiết kế
- 17. Sự khác biệt giữa mẫu thiết kế trang trí và kiểu thiết kế của khách truy cập
- 18. Tái sử dụng dữ liệu thiết kế trong Expression Blend?
- 19. Có khóa nào để chặn neo trong trình thiết kế Biểu mẫu VS Windows không?
- 20. Mẫu thiết kế ngoại lệ C++
- 21. Ngoài các mẫu thiết kế?
- 22. Các mẫu thiết kế/chiến lược thiết kế mới
- 23. Mẫu thiết kế - Mẫu chiến lược
- 24. Mẫu thiết kế với diễn viên
- 25. Mẫu thiết kế xác nhận dữ liệu
- 26. Về mẫu thiết bị định vị dịch vụ
- 27. Mẫu thiết kế và Scala
- 28. Vaadin: Các mẫu thiết kế
- 29. Thiết kế mẫu trong Rails
- 30. Khả năng phát hiện thời gian chạy RESTful API/thiết kế máy khách HATEOAS
Thảo luận tương tự có thể tìm thấy tại đây: http://stackoverflow.com/questions/747913/why-would-i-ever-use-a-chain-of-responsibility-over-a -decorator – hoymkot