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ụ
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. –