Ringkasan
Mode dekoratif adalah fungsi memperluas objek dengan cara yang transparan ke klien, dan merupakan alternatif untuk hubungan warisan. Dengan kata lain, klien tidak berpikir bahwa ada perbedaan antara objek sebelum dan sesudah dekorasi. Mode dekoratif dapat memperluas fungsi objek tanpa membuat lebih banyak subkelas. Kunci dari mode dekoratif adalah ekstensi ini benar -benar transparan.
Struktur polanya
Diagram Kelas UML:
Karakter dalam mode dekorasi:
Abstrak Peran Komponen (Proyek): Memberikan antarmuka untuk mengatur objek yang siap menerima tanggung jawab tambahan.
Peran komponen spesifik (karyawan): Tentukan kelas yang akan menerima tanggung jawab tambahan
Peran Dekoratif (Manajer): Memegang instance objek komponen dan mendefinisikan antarmuka yang konsisten dengan antarmuka komponen abstrak
Peran Dekoratif Khusus (Manajer, ManajerB): Bertanggung jawab atas "menempel" tanggung jawab tambahan untuk objek komponen
Contoh Kode
Wawancara paket; Proyek Antarmuka {void docoding ();} Kelas karyawan mengimplementasikan proyek {@Override public void docoding () {System.out.println ("Rekayasa adalah pemrograman ..."); }} kelas manajer mengimplementasikan proyek {proyek proyek pribadi; manajer publik (proyek proyek) {this.project = proyek; } @Override public void docoding () {startNewWork (); Project.docoding (); } public void startNewWork () {}} kelas Managera Extends Manager {Public Managera (Proyek Proyek) {Super (Proyek); } @Override public void startNewWork () {System.out.println ("Manajer Pengembangan memulai rencana kerja baru"); }} class managerB memperluas manajer {public managerB (proyek proyek) {super (proyek); } @Override public void startNewWork () {System.out.println ("Test Manager memulai rencana kerja baru"); }} kelas publik Maintest {public static void main (string arg []) {Project Project = new mempekerjakan (); Project Managera = New Managera (Project); Manajer Project = ManajerB baru (Proyek); Managera.docoding (); manajerb.docoding (); }} Keuntungan dan Kekurangan Mode Dekoratif:
keuntungan:
Tujuan dari mode dekoratif dan warisan adalah untuk memperluas fungsi objek, tetapi mode dekoratif dapat memberikan lebih banyak fleksibilitas daripada warisan. Mode dekoratif memungkinkan sistem untuk secara dinamis memutuskan untuk "menempel" "dekorasi" yang dibutuhkan, dan hubungan warisan berbeda. Hubungan warisan statis dan diputuskan sebelum sistem berjalan.
Dengan menggunakan kategori dekoratif spesifik yang berbeda dan kombinasi kategori dekoratif ini, desainer dapat membuat banyak kombinasi perilaku yang berbeda.
kekurangan:
Karena penggunaan pola dekoratif, jumlah kelas yang lebih sedikit dapat diperlukan daripada menggunakan hubungan warisan. Menggunakan kelas yang lebih sedikit tentu membuat desain lebih mudah dilakukan. Namun, di sisi lain, menggunakan pola dekoratif menghasilkan lebih banyak objek daripada menggunakan hubungan warisan. Lebih banyak objek dapat membuat kesalahan menjadi sulit, terutama karena semuanya terlihat serupa.
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.