5.1. Flyweight Pattern
Flyweight Pattern adalah sebuah
perangkat lunak desain pattern. Flyweight
pattern adalah sebuah objek yang meminimalkan penggunaan memori dengan berbagi
data sebanyak mungkin dengan objek sejenis, yang merupakan cara untuk
menggunakan benda-benda dalam jumlah besar ketika representasi diulang
sederhana akan menggunakan jumlah yang dapat diterima dari memori. Seringkali
beberapa bagian dari negara objek dapat dibagi, dan itu adalah praktek umum
untuk menahan mereka dalam struktur data eksternal dan meneruskannya ke objek
kelas flyweight sementara ketika mereka digunakan.
Sebuah contoh klasik dari
penggunaan pola flyweight adalah struktur data untuk representasi grafis dari
karakter dalam pengolah kata. Mungkin diinginkan untuk memiliki, untuk setiap
karakter dalam dokumen, sebuah flyweight objek yang mengandung outline font,
metrik font, dan data format lain, tapi ini akan berjumlah ratusan atau ribuan
byte untuk setiap karakter. Sebaliknya, untuk setiap karakter mungkin ada
referensi ke objek mesin flyweight kelas flyweight bersama oleh setiap contoh
karakter yang sama dalam dokumen, hanya posisi masing-masing karakter (dalam
dokumen dan / atau halaman) akan perlu disimpan secara internal.
Maksud dari pola ini adalah dengan menggunakan berbagi untuk
mendukung sejumlah besar objek yang memiliki bagian dari keadaan internal mereka
yang sama di mana bagian lain dapat bervariasi.