Flyweight Pattern - Java

Flyweight Pattern là gì?

Là một dạng pattern trong nhóm cấu trúc. Flyweight pattern giúp giảm dung lượng chiếm bởi các objects trên RAM bằng cách chia sẻ những phần chung giữa các objects.

Khi nào chúng ta dùng Flyweight Pattern?

Khi chúng ta nhận thấy một nhóm các object trong chương trình cùng chia sẻ những thuộc tính chung. Chúng ta có thể tạo ra object mới gói gọn những thuộc tính chung này và sau đó cache lại để sử dụng lại. Hiểu đơn giản là nhiều product bao gồm những thuộc tính chung thì ta có thể tách những thuộc tính chung này thành một class mới là product type chẳng hạn => sau đó cache product type này lại để sử dụng lại cho những product khác.

Cấu trúc

Ví dụ Flyweight Pattern trong Java

Chúng ta sẽ tạo một ví dụ cơ bản về việc sử dụng flyweight pattern. Đầu tiên sẽ là class Circle với những thuộc tính riêng: Sau đó là class CircleType với những thuộc tính chung: Và class CircleTypeFactory dùng để khởi tạo và cache các object CircleType: Cuối cùng là class demo: Và ouput sẽ như sau: => Các bạn thấy đấy, với 20 hình tròn nhưng chỉ có 4 loại được tạo và dùng lại cho những hình tròn khác.

Source code sử dụng trong bài viết: https://github.com/luubi/design-patterns/tree/master/src/main/java/com/vlt/flyweight



Nguồn: Bài viết liên quan:

Bài viết liên quan


EmoticonEmoticon