Artikel ini menjelaskan mode kenikmatan pola desain java. Bagikan untuk referensi Anda, sebagai berikut:
Jelaskan konsepnya: yaitu, jika ada beberapa objek yang identik dalam suatu sistem, maka bagikan satu salinan, dan tidak perlu instantiate objek untuk masing -masing. Misalnya, dalam sistem teks, setiap huruf didefinisikan sebagai objek, jadi ada 52 huruf besar dan kecil, jadi 52 objek perlu ditentukan. Jika ada teks 1m, maka ada begitu banyak huruf. Jika setiap huruf mendefinisikan suatu objek, memori akan meledak sejak lama. Kemudian jika setiap huruf berbagi objek, maka itu akan sangat menghemat sumber daya.
Dalam mode kelas terbang, karena berbagai objek akan dihasilkan, mode pabrik sering muncul dalam mode kelas terbang. Keadaan internal kelas terbang digunakan untuk berbagi. Pabrik Flyweight bertanggung jawab untuk memelihara kolam penyimpanan objek (kolam renang kelas terbang) untuk menyimpan benda dengan keadaan internal. Mode Fly Weight adalah mode yang meningkatkan efisiensi dan kinerja program, yang akan sangat mempercepat kecepatan program. Ada banyak kesempatan aplikasi, sebagai berikut:
Pertama -tama tentukan kelas kelas terbang abstrak:
Paket Flyweight; Publik Abstrak Kelas Terbang {Operasi Void Abstrak Publik ();}Menerapkan kelas tertentu:
Paket Flyweight; kelas publik CONCRETEFLYWEight Memperluas Flyweight {Private String String; Public Concreteflyweight (String str) {string = str;} public void Operation () {System.out.println ("Concrete --- Flyweight:" + String);}}Menerapkan kelas metode pabrik:
Paket Flyweight; import java.util.hashtable; kelas publik flyweightfactory {private hashTable flyweights = new Hashtable (); // ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- batal){//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Kelas metode pabrik ini sangat penting, berikut adalah penjelasan terperinci:
Hashtable didefinisikan pada 1 untuk menyimpan setiap objek; Suatu objek yang akan dipilih dipilih pada 2, dan objek yang akan dikembalikan pada 6. Jika tidak ada objek yang dipilih dalam hashtable, kelas terbang variabel adalah nol, dan kelas terbang baru dihasilkan untuk disimpan dalam hashtable, dan objek dikembalikan.
Akhirnya, mari kita lihat panggilan kelas terbang:
Paket Flyweight; Impor java.util.hashtable; kelas publik flyweightpattern {flyweightfactory factory = flyweightfactory baru (); flyweight fly1; weightweight fly2; flyweight fly3; flyweight fly4; flyweight fly5; flyweight fly6;/***// ** create baru instance weightpattern fly weightpattern*Publyweight Publicpattern*Publypattern umum Publypattern*Publypattern PublyPatter*Public WeightPattern* factory.getFlyweight ("Google"); fly2 = factory.getFlyweight ("qutr"); fly3 = factory.getFlyweight ("Google"); fly4 = factory.getFlyweight ("Google"); fly5 = factory.getFlyweight ("Google"); fly6 = factory.getflyweight ("Google"); showfly weight () {fly1.operation (); fly2.Operation (); fly3.Operation (); fly4.Operation (); fly5.Operation (); fly6.Opererasi (); int objSize = factory.getFlyweightSize (); System.out.println ("objSize =" + objsize);} public.println ("ObjSize =" + objSize); args) {System.out.println ("Pola kelas terbang!"); flyweightpattern fp = new FlyweightPattern (); fp.showflyweight ();}}Berikut hasil berjalan:
Beton --- kelas terbang: Google
Beton --- kelas terbang: qutr
Beton --- kelas terbang: Google
Beton --- kelas terbang: Google
Beton --- kelas terbang: Google
Beton --- kelas terbang: Google
objSize = 2
Kami telah mendefinisikan 6 objek, 5 di antaranya sama. Menurut definisi mode kelas terbang, "Google" harus berbagi objek. Dalam jumlah objek yang sebenarnya, kita dapat melihat bahwa hanya ada 2 objek.
Meringkaskan:
Mode kelas terbang sangat penting karena dapat membantu Anda menghemat banyak ruang memori dalam sistem yang kompleks. Dalam bahasa Java, tipe string menggunakan mode ensiklopedia. Objek string adalah tipe akhir dan tidak dapat diubah setelah dibuat. Di Java, konstanta string hadir di kolam konstan. Java akan memastikan bahwa konstanta string hanya memiliki satu salinan di kumpulan konstan. String A = "ABC", di mana "ABC" adalah konstanta string.
Mereka yang akrab dengan Java harus mengetahui contoh berikut:
String a = "hello"; string b = "hello"; if (a == b) system.out.println ("ok"); elsesystem.out.println ("error");Hasil outputnya adalah: OK. Dapat dilihat bahwa jika kondisi membandingkan alamat dua A dan B, atau dapat dikatakan sebagai ruang memori
Ringkasan inti: Objek yang dapat dibagikan, yaitu objek dari jenis yang sama yang dikembalikan sebenarnya adalah contoh yang sama. Ketika klien membutuhkan objek untuk dihasilkan, pabrik akan mendeteksi apakah ada contoh objek ini. Jika ada, maka langsung kembalikan instance objek ini. Jika tidak ada, buat dan simpan. Ini memiliki beberapa arti pola singleton. Biasanya, kelas pabrik akan memiliki variabel anggota tipe set untuk menyimpan objek, seperti hashtable, vektor, dll. Di java, kumpulan koneksi basis data, kumpulan utas, dll. Adalah aplikasi yang menggunakan mode enyuan.
Untuk konten yang lebih terkait dengan Java, pembaca yang tertarik dengan situs ini dapat melihat topik: "Tutorial Struktur Data Java dan Algoritma", "Ringkasan Java Operation Dom Node Tips", "Ringkasan Tips Operasi Java File dan Direktori" dan "Ringkasan Java Cache Tips"
Saya harap artikel ini akan membantu pemrograman Java semua orang.