Thông thường có thể chấp nhận cho phép Khách truy cập sửa đổi trạng thái của Người nhận hay thay vào đó là mẫu Lệnh không?Mẫu Lệnh so với Mô hình Khách truy cập
Trả lời
Mục đích của mẫu khách truy cập là cho phép các hoạt động mới được thêm vào chế độ thừa kế lớp mà không sửa đổi cho chế độ thừa kế đó. Tôi chưa bao giờ thấy bất kỳ ai đề xuất rằng chỉ các hoạt động chỉ đọc mới được chấp nhận. Hạn chế duy nhất là các hoạt động được thêm vào chỉ nên sử dụng giao diện công cộng của chế độ thừa kế lớp.
Tôi không nghĩ rằng bạn có thể đưa ra tuyên bố về chăn dù có tốt hay xấu để sửa đổi trạng thái của bất kỳ điều gì. Tôi nghĩ rằng nó là ok để sửa đổi các tiểu bang miễn là nó không ảnh hưởng đến các logic truy cập chính nó. Ví dụ: bạn có thể viết khách truy cập truy cập tất cả các tệp theo cấu trúc thư mục và đổi tên tệp thành chữ hoa.
Ví dụ của Microsoft về khách truy cập sửa đổi người nhận là ExpressionVisitor. Mục đích của lớp ExpressionVisitor là sửa đổi một cây biểu thức. Vì vậy, tôi đoán Microsoft ít nhất nghĩ rằng đó là chấp nhận được.
Microsoft không phải lúc nào cũng là hướng dẫn tốt nhất về điều đúng và sai: http://ayende.com/blog/35841/review-microsoft-n-layer-app-sample-part-xndash-architecture- for-the-space-age – jason
Cách giải thích tiêu chuẩn khi ai đó nói "thẩm quyền X nghĩ rằng Y là chấp nhận được" là bạn đang ủng hộ Y bằng cách kháng cáo thẩm quyền X. cf. * đối số quảng cáo verecundiam *. – jason
@ Jason Chắc chắn tôi sẽ xem xét Microsoft một cơ quan. Tôi đang nói đây là một ví dụ mà thẩm quyền này tìm thấy mẫu này có thể chấp nhận được. Nhưng tôi có nói rằng họ là "hướng dẫn tốt nhất"? Không. Tôi để nó cho người hỏi để quyết định xem họ có đúng không. –
Mỗi mẫu có ưu điểm, nhược điểm và trường hợp sử dụng riêng.
Bạn có thể sử dụng Command
mẫu để
tách các Invoker & nhận lệnh
Thực hiện callback cơ chế
Thực hiện Undo và Redo chức năng
Duy trì một lịch sử các lệnh
Sử dụng Visitor
mẫu trong các tình huống dưới đây:
- hoạt động tương tự phải được thực hiện trên các đối tượng của các loại khác nhau nhóm lại trong một cấu trúc
- Bạn cần thực hiện nhiều thao tác riêng biệt và không liên quan. Nó tách Operation từ đối tượng Cấu trúc
- Operations mới đã được thêm vào mà không thay đổi trong cấu trúc đối tượng
bài viết liên quan:
- 1. Mô hình khách truy cập ở Scala
- 2. Mô hình khách truy cập cho AST
- 3. truy cập mô hình từ mẫu
- 4. Thay thế cho mẫu khách truy cập?
- 5. Mẫu khách truy cập chung chung hơn
- 6. C++ mô hình khách truy cập: Tại sao mọi truy xuất có nguồn gốc đều được truy cập Accept()?
- 7. sự khác biệt giữa mô hình khách truy cập và chiến lược là gì?
- 8. Mẫu khách truy cập + Nguyên tắc mở/đóng
- 9. Xác nhận về triển khai Hành khách Apache: phiên truy cập đường ray trong mô hình
- 10. Hình ảnh so với Hình ảnh so với Hình ảnh - Các mẫu đặt tên
- 11. Mục đích của mẫu khách truy cập với các ví dụ
- 12. Có cách nào để phân biệt khách truy cập iPhone 3G/S với khách truy cập iPhone 4 không?
- 13. C# mô hình mvc so với viewbag
- 14. Haskell so với mô hình luồng Python
- 15. Truy cập thuộc tính Mô hình trong tệp javascript?
- 16. Cách công văn đôi hoạt động trong mẫu Khách truy cập?
- 17. CodeIgniter Truy cập mẫu PHP "Không thể định vị mô hình bạn đã chỉ định"
- 18. Cách truy cập các thuộc tính Mô hình xương sống trong mẫu Handlebar
- 19. quy mô và xoay So khớp mẫu
- 20. Truy cập các thuộc tính mô hình trong Rails
- 21. Kiểm soát truy cập sớm | tải so với domready
- 22. truy cập máy chủ websocket golang với máy khách nodejs
- 23. Cách thích hợp để truy cập Mô hình Xem từ Mô hình Xem hiện tại
- 24. Thực hiện bộ đếm khách truy cập
- 25. cách truy cập phiên trong mô hình asp.net mvc
- 26. Tạo mẫu GUI với khách hàng
- 27. Flask - Truy cập biến cấu hình trong mẫu
- 28. Truy cập PHP cho Khách hàng
- 29. Tốc độ truy cập tệp so với tốc độ truy cập cơ sở dữ liệu
- 30. Truy cập trực tiếp biến thể hiện so với Sử dụng phương thức truy cập
Có chắc chắn là trường hợp người ta có thể làm e tuyên bố rằng thay đổi trạng thái là một điều tốt hay xấu. Mẫu khách truy cập được dự kiến sẽ được sử dụng theo cách như một sự thay đổi trạng thái là có thể và thậm chí có khả năng. Trong khi với người quan sát, người quan sát không nên thay đổi trạng thái. –
Điều gì về một người dùng, sự kiện để nhận xét, người nghe punisher mà sẽ cấm người dùng sau khi nói một số từ bạo lực? :-) –