Mode kombinasi, menggabungkan objek ke dalam struktur pohon untuk mewakili hierarki "sebagian total". Mode kombinasi memungkinkan pengguna untuk menggunakan objek individual dan objek gabungan secara konsisten. Mode kombinasi memungkinkan klien untuk menyelesaikan fungsi yang awalnya membutuhkan pernyataan kontrol proses hanya sebagai memodifikasi file konfigurasi.
Fitur: Untuk struktur data hierarkis rekursif atau seperti pohon, mereka dapat diproses dengan cara yang paling sederhana.
Aplikasi dalam pengembangan tingkat perusahaan dan kerangka kerja yang umum digunakan: Struktur Direktori Sistem dan Struktur Navigasi Situs Web
Berikut adalah contoh struktur direktori:
Skenario: Misalkan kita sekarang memiliki direktori, dan ada subdirektori dan file di bawah direktori. Sekarang kami ingin melihat seluruh direktori dan semua file dan waktu pembuatan di direktori.
Kode spesifiknya adalah sebagai berikut:
Paket com.test.composite; import java.util.arraylist; import java.util.date; import java.util.list; demo kelas publik {public static void main (string [] args) {date d = new date (); Dir f1 = dir ("koleksi saya", d); D.Setyear (2012); Dir f2 = dir ("gambar", d) baru; Dir f3 = dir ("musik", d) baru; D.Setyear (2013); ActualFile F4 = New ActualFile ("Xi Yangyang dan Big Big Wolf.avi", D); f1.add (f4); Aktualfile f5 = new ActualFile ("taiyanghua.jpg", d); ActualFile F6 = New ActualFile ("Stainless Steel.jpg yang cacat", D); f2.add (f5); f2.add (f6); f1.add (f2); f1.add (f3); f1.showfile (); }}/*** Pertama -tama, direktori dan file tersebut milik file, sehingga kami dapat mengabstraksikan file abstrak*/antarmuka abstrakfile {/*** Metode file tampilan*/public void showfile ();}/*** File nyata*/kelas ActualFile mengimplementasikan AbstractFile {private string name; tanggal pribadi dibuat; public ActualFile (nama string, tanggal dibuat) {this.name = name; this.createdate = createate; } public string getName () {return name; } public void setName (name string) {this.name = name; } tanggal publik getCreateDate () {return createdate; } public void setCreateDate (tanggal dibuat) {this.createdate = createdate; } / *** Menerapkan metode file tampilan kelas file abstrak* / public void showfile () {System.out.println ("Nama file:"+this.name+"-buat waktu:"+this.createDate.getTime ()); }}/*** File Direktori*/Kelas Dir mengimplementasikan AbstractFile {private string name; tanggal pribadi dibuat; / *** Sebagai file direktori, akan ada daftar subfile tambahan*/ daftar privat <BstractFile> daftar = Daftar Array baru <> (); Dir publik (nama string, tanggal dibuat) {super (); this.name = name; this.createdate = createate; } public string getName () {return name; } public void setName (name string) {this.name = name; } tanggal publik getCreateDate () {return createdate; } public void setCreateDate (tanggal dibuat) {this.createdate = createdate; } / ** * Tambahkan file direktori, tambahkan subfile atau subdirektori ke direktori * / public void add (AbstractFile f) {this.list.add (f); } / ** * Hapus operasi file direktori, hapus subfile atau subdirektori * / public void hapus (AbstractFile f) {this.list.remove (f); } / ** * Dapatkan pengoperasian file direktori, dapatkan subfile atau subdirektori di bawah direktori * / abstrak publik getIndex (indeks int) {return this.list.get (index); } public void showFile () {System.out.println ("Nama Direktori:"+this.name+"-create Time:"+this.createdate.getTime ()); untuk (AbstractFile F: Daftar) {f.showfile (); }}}Mode kombinasi lebih seperti metode traversal, tetapi metode ini juga memiliki beberapa keterbatasan, seperti hanya menargetkan data yang mirip dengan struktur pohon.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.