Kelas terbang Desain Pola

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.




Komentar