Kelas terbang Desain Pola
Oleh
chmood
Kelas terbang Desain Pola
Gunakan berbagi untuk mendukung sejumlah besar benda
berbutir halus efisien.
Motif GUI strategi penggantian berat-berat widget dengan
gadget ringan.
Masalah
Merancang benda turun ke tingkat terendah sistem
"granularity" menyediakan fleksibilitas yang optimal, tetapi dapat
tidak dapat diterima mahal dalam hal kinerja dan penggunaan memori.
Pola kelas terbang menjelaskan cara berbagi objek untuk
memungkinkan mereka digunakan di granularities baik tanpa biaya mahal. Setiap
"kelas terbang" objek dibagi menjadi dua bagian: yang (ekstrinsik)
bagian tergantung negara, dan (intrinsik) bagian negara-independen. Negara
intrinsik disimpan (bersama) di objek kelas terbang. Negara ekstrinsik disimpan
atau dihitung dengan benda klien, dan diteruskan ke kelas terbang ketika
operasinya dipanggil.
Sebuah ilustrasi dari pendekatan ini akan Motif widget yang
telah kembali direkayasa sebagai gadget ringan. Sedangkan widget yang
"cerdas" cukup untuk berdiri sendiri; gadget ada dalam hubungan
ketergantungan dengan orang tua tata letak manajer widget mereka. Setiap
manajer layout memberikan acara penanganan tergantung pada konteks, manajemen
real estat, dan jasa sumber daya untuk gadget kelas terbang nya, dan
masing-masing gadget hanya bertanggung jawab untuk konteks-independen negara
dan perilaku.
Flyweights disimpan dalam repositori Factory. Klien menahan
diri dari membuat flyweights langsung, dan meminta mereka dari pabrik. Setiap
kelas terbang tidak bisa berdiri sendiri. Setiap atribut yang akan melakukan
sharing mungkin harus dipasok oleh klien setiap kali permintaan dibuat dari
kelas terbang. Jika konteksnya cocok untuk "skala ekonomi" (yaitu
klien dapat dengan mudah menghitung atau melihat-up atribut yang diperlukan),
maka pola kelas terbang menawarkan leverage yang sesuai.
Kelas Ant, Locust, dan Kecoa bisa "ringan" karena
mereka negara-contoh spesifik telah de-encapsulated, atau externalized, dan
harus dipasok oleh klien/
Kelas terbang menggunakan berbagi untuk mendukung sejumlah
besar benda efisien. Web browser modern menggunakan teknik ini untuk mencegah
pemuatan gambar yang sama dua kali. Ketika browser memuat halaman web, itu
melintasi melalui semua gambar pada halaman tersebut. Browser beban semua
gambar baru dari Internet dan menempatkan mereka cache internal. Untuk gambar
yang sudah dimuat, objek kelas terbang diciptakan, yang memiliki beberapa data
yang unik seperti posisi dalam halaman, tetapi segala sesuatu yang lain dirujuk
ke salah satu cache.
Pastikan bahwa objek biaya overhead adalah masalah yang
memerlukan perhatian, dan, klien kelas mampu dan bersedia untuk menyerap
tanggung jawab penataan kembali.
Membagi negara target kelas ke dalam: shareable (intrinsik)
negara, dan non-shareable (ekstrinsik) negara.
Hapus negara non-shareable dari atribut kelas, dan
menambahkannya daftar argumen pemanggilan metode yang terkena.
Buat Pabrik yang bisa cache dan menggunakan kembali contoh
kelas yang ada.
Klien harus menggunakan Factory bukan operator baru untuk
meminta objek.
Klien (atau pihak ketiga) harus melihat-up atau menghitung
negara non-shareable, dan memasok negara yang dengan metode kelas.
Sedangkan kelas terbang menunjukkan bagaimana membuat banyak
benda kecil, Facade menunjukkan bagaimana membuat satu objek mewakili seluruh
subsistem.
Kelas terbang sering dikombinasikan dengan Composite untuk
melaksanakan bersama node daun.
Simbol terminal dalam pohon sintaks abstrak Interpreter
dapat dibagi dengan kelas terbang.
Kelas terbang menjelaskan kapan dan bagaimana objek Negara
dapat dibagi.
Category
Komentar