2010-02-23 33 views
7

Đây là định nghĩa của nó:Làm thế nào để thực hiện mẫu flyweight trong php?

Sử dụng chia sẻ để hỗ trợ số lượng lớn của các đối tượng chi tiết hiệu quả.

Nhưng tôi không thể hiểu chính xác ý nghĩa của nó.

Bạn có thể xây dựng bằng một bản trình diễn nhỏ không?

+2

Tôi googled 'mẫu flyweight php' và kiểm tra 3 kết quả đầu tiên. Mỗi mang lại một hướng dẫn toàn diện và các ví dụ mở rộng. –

Trả lời

11

Mẫu Flyweight hữu ích nếu bạn cần một số lượng lớn các phiên bản của một loại cụ thể. Bạn cô lập dữ liệu giống nhau cho tất cả các trường hợp này (trạng thái bên trong) vào một đối tượng được chia sẻ. Bạn chỉ giữ dữ liệu thay đổi theo từng cá thể trong các cá thể (trạng thái bên ngoài). Lợi ích là tiêu thụ bộ nhớ ít rõ ràng hơn.

Đó là một mô hình phổ biến trong ngành công nghiệp trò chơi, nơi ví dụ thông thường là Người lính trên chiến trường. Tất cả những người lính chia sẻ cùng một biểu diễn đồ họa và cùng vũ khí nhưng vị trí và sức khỏe của họ thì khác. Trạng thái bên ngoài sau đó sẽ chỉ là sức khỏe của chúng và x/y/z tọa độ trên chiến trường trong khi mọi thứ khác sẽ nằm trong Flyweight.

Triển khai PHP cho mẫu này dễ tìm trên web. Ví dụ

+0

tốt, như mọi khi Gordon, ví dụ tuyệt vời +1 –

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