Ringkasan
Ini adalah pola struktural yang mengatur objek dalam struktur pohon untuk mewakili hierarki "sebagian-total", membuat klien unik dalam penggunaan objek individu dan objek gabungan.
Diagram Kelas UML
Diagram kelas di atas berisi peran:
Komponen: Deklarasikan antarmuka umum untuk objek yang berpartisipasi dalam komposisi, apakah itu kombinasi atau simpul daun.
Daun: mewakili objek simpul daun dalam kombinasi, dan simpul daun tidak memiliki node anak.
Komposit: mewakili objek dengan objek anak yang berpartisipasi dalam kombinasi dan memberikan perilaku konstruksi cabang;
Contoh Kode
impor java.util.arraylist; import java.util.list; komponen kelas abstrak {nama string yang dilindungi; komponen publik (nama string) {this.name = name; } public abstrak void add (komponen c); hapus abstrak abstrak publik (komponen C); abstrak publik void getChild (int depth);} class Leaf memperluas komponen {public leaf (nama string) {super (name); } @Override public void add (komponen c) {System.out.println ("tidak dapat menambahkan ke daun"); } @Override public void Remove (komponen c) {System.out.println ("Tidak dapat menghapus dari daun"); } @Override public void getChild (int depth) {string temp = ""; untuk (int i = 0; i <kedalaman; i ++) {temp+= "-"; System.out.println (Temp + Name); }}} class Composite Extends Component {Private List <Component> Children = New ArrayList <> (); public composite (nama string) {super (name); } @Override public void add (komponen c) {children.add (c); } @Override public void REMPANTIVE (Component C) {Children.Remove (c); } @Override public void getChild (int depth) {for (component c: children) {c.getChild (kedalaman); }}} kelas publik main {public static void main (string args []) {composite root = new composite ("root"); root.add (daun baru ("daun a")); root.add (daun baru ("daun b")); Komposit compx = komposit baru ("komposit x"); compx.add (daun baru ("daun xa")); compx.add (daun baru ("daun xb")); root.add (compx); Komposit komposit = komposit baru ("komposit xy"); compxy.add (daun baru ("daun xya")); compxy.add (daun baru ("daun xyb")); compx.add (compxy); root.getchild (3); }}Skenario Aplikasi
1. Membutuhkan hierarki bagian-ke-keseluruhan objek.
2. Jika klien ingin klien mengabaikan perbedaan antara objek gabungan dan satu objek, klien akan menggunakan semua objek dalam struktur gabungan secara seragam.
Pola kombinasi mendefinisikan struktur kelas yang terdiri dari objek daun dan objek komposit;
Membuat klien sederhana;
Mudah untuk menambah atau menghapus sub-bagian.
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.