Gần đây, có đủ loại cuộc nói chuyện trong cộng đồng Ruby on Rails về người trang trí và người trình bày.
Sự khác biệt cơ bản giữa hai là gì? Nếu có, những manh mối cho tôi biết nên sử dụng cái nào hơn cái kia? Hoặc có lẽ để sử dụng cả hai kết hợp?
Gần đây, có đủ loại cuộc nói chuyện trong cộng đồng Ruby on Rails về người trang trí và người trình bày.
Sự khác biệt cơ bản giữa hai là gì? Nếu có, những manh mối cho tôi biết nên sử dụng cái nào hơn cái kia? Hoặc có lẽ để sử dụng cả hai kết hợp?
Câu trả lời:
Decorator là một "hãy thêm một số chức năng vào thực thể này". Người thuyết trình không chỉ là một "hãy xây dựng cầu nối giữa mô hình / phụ trợ và chế độ xem". Mẫu người thuyết trình có một số cách giải thích.
Người trang trí là mục đích chung / chung. Người thuyết trình có phạm vi trách nhiệm / mục đích sử dụng hẹp hơn. Người trình bày được sử dụng trên các miền, người trình bày hầu như luôn có liên quan đến chức năng dạng xem.
Tôi đề nghị bạn kiểm tra điều này - Triển lãm vs Người trình bày .
Decorator là một mẫu thiết kế được sử dụng để mở rộng chức năng của một đối tượng cụ thể bằng cách bao bọc nó mà không ảnh hưởng đến các phiên bản khác của đối tượng đó. Nói chung, decorator pattern là một ví dụ về nguyên tắc mở / đóng (lớp đóng để sửa đổi, nhưng có sẵn cho phần mở rộng).
Cả mẫu trưng bày và người thuyết trình đều là một loại mẫu trang trí.