Theo như tôi biết hồ bơi đối tượng là một mô hình sáng tạo và trọng lượng là mô hình cấu trúc, nhưng thực ra tôi không thể thấy sự khác biệt rất nhiều giữa hai mẫu đó, ai đó có thể giải thích cho tôi sự khác biệt và khi nào có thể hữu ích trong việc triển khai?Mô hình nhóm đối tượng trọng lượng và đối tượng: Khi nào thì mỗi mẫu đều hữu ích?
Trả lời
Một sự khác biệt về trọng số đó là trường hợp không thay đổi thường xuyên, trong khi tài nguyên có được từ hồ bơi thường có thể thay đổi. Vì vậy, bạn tạo flyweights để tránh chi phí liên tục tạo ra nhiều trường hợp của các đối tượng có cùng trạng thái (vì chúng đều giống nhau, bạn chỉ cần tạo một và sử dụng lại nó trong tất cả các vị trí trong ứng dụng của bạn), trong khi tài nguyên một hồ bơi là những tài nguyên cụ thể mà bạn muốn kiểm soát cá nhân và có thể có trạng thái khác nhau, nhưng bạn không muốn trả chi phí tạo ra và hủy diệt bởi vì tất cả chúng đều được khởi tạo trong cùng một trạng thái.
Ít nhất hai sự khác biệt lớn đến tâm:
- Bể bơi đối tượng là một chứa cho một tập các đối tượng miền trong khi một hạng ruồi thường là một đối tượng tên miền.
- Một nhóm đối tượng thường chứa một tập các đối tượng tương tự có thể được chia sẻ đồng thời, chẳng hạn như kết nối cơ sở dữ liệu, trong khi thường có một tập hợp các đối tượng khác nhau, mỗi đại diện cho một trạng thái khác nhau.
Trang web này mô tả cả hai mẫu với ví dụ cụ thể. Nó làm một công việc khá goo làm rõ sự khác biệt và hỗ trợ phản ứng của Gabriel ở trên. http://www.oodesign.com/
- 1. Khi nào thì đối tượng() được tích hợp hữu ích?
- 2. Khi nào thì logic thuộc về đối tượng/đối tượng kinh doanh và khi nào thuộc về một dịch vụ?
- 3. DAO mô hình và các đối tượng mô hình
- 4. Phương pháp đối tượng JavaScript Chaining: hữu ích?
- 5. Thiết kế đối tượng mô hình Java
- 6. Truyền đối tượng để xem mô hình
- 7. Sự khác nhau giữa đối tượng Mô hình MVC, đối tượng tên miền và DTO
- 8. Xác thực đối tượng mô hình Python
- 9. Windsor Castle/DI và mô hình đối tượng
- 10. 5 viết mỗi giây cho một nhóm đối tượng
- 11. Đối tượng nào mô phỏng khi thực hiện TDD
- 12. Sự khác nhau giữa Mô hình đối tượng trình duyệt và Mô hình đối tượng tài liệu là gì?
- 13. Mẫu phiên bản đối tượng
- 14. AngularJS ng mô hình chuyển đổi đối tượng chuỗi
- 15. Mẫu chuyển đổi đối tượng
- 16. Nhóm đối tượng con trong WPF TreeView
- 17. Giải thích tốt về mô hình đối tượng ruby - chủ yếu là 'các lớp là đối tượng'?
- 18. Java GUI: Mẫu đối tượng tài liệu
- 19. Các quy tắc quan trọng trong Thiết kế Mô hình Đối tượng
- 20. Thêm đối tượng để sở hữu một NSMutableArray
- 21. Tạo đối tượng và đa hình
- 22. Các đối tượng mô hình có giao diện không?
- 23. Làm cách nào để kiểm tra đối tượng mô hình được tiếp tục với DB hoặc đối tượng mới?
- 24. Đối tượng miền - "Đối tượng thông minh" so với POCO
- 25. Khi nào sử dụng các thành phần Seaside và khi nào thì sử dụng các đối tượng render đơn giản?
- 26. Tùy chọn trọng lượng nhẹ nào phải tồn tại đối tượng Java
- 27. Bối rối về lý do tại sao nó hữu ích đối với các đối tượng giả thử nghiệm đơn vị
- 28. s3 cho mỗi đối tượng hết hạn
- 29. sở hữu đối tượng Modify trong một mảng của các đối tượng
- 30. Làm cách nào để trừ hai đối tượng XmlGregorianCalendar để tạo một đối tượng Thời lượng?
Câu trả lời hay nhất! Tôi nghĩ rằng, Flyweight thường được sử dụng để giảm thiểu khối lượng bộ nhớ, bởi vì nó chỉ chứa các mục duy nhất. Đối tượng hồ bơi cho phép để cải thiện hiệu suất nhưng dẫn đến tiêu thụ bộ nhớ cao. – Warlock
Đối với một số mở rộng, tôi nghĩ rằng mô hình flyweight cũng lưu trữ một cái gì đó. Nếu trọng lượng không thay đổi duy nhất chiếm quá nhiều bộ nhớ, rất khó để nói rằng bộ nhớ tiết kiệm được. Bạn có thể nói nó tốt hơn bạn tạo ra những vật thể bất biến này một lần và một lần nữa. – Chao