Artikel ini membawakan anda pengetahuan yang berkaitan tentang java Ia terutamanya memperkenalkan isu berkaitan tentang corak reka bentuk, terutamanya kandungan yang berkaitan dengan corak penghias tanpa mengubah objek sedia ada tambah secara dinamik beberapa corak tanggungjawab pada objek saya harap ia akan membantu semua orang.
Pembelajaran yang disyorkan: "tutorial video java"
Takrifan corak penghias: merujuk kepada corak yang menambahkan beberapa tanggungjawab secara dinamik pada objek (iaitu, menambah fungsi tambahannya) tanpa mengubah struktur objek sedia ada Ia tergolong dalam corak Struktur objek.
1. Penghias ialah pelengkap yang berkuasa untuk warisan dan lebih fleksibel daripada pewarisan -dalam Sedia untuk digunakan
2. Kesan yang berbeza boleh dicapai dengan menggunakan kelas hiasan yang tidak digunakan dan susunan serta gabungan kelas hiasan ini
3. Mod penghias mematuhi sepenuhnya prinsip pembukaan dan penutup
Corak penghias akan menambah banyak subkelas, dan penggunaan yang berlebihan akan meningkatkan kerumitan program.
Biasanya, melanjutkan kefungsian kelas dicapai menggunakan warisan. Walau bagaimanapun, pewarisan mempunyai ciri statik dan tahap gandingan yang tinggi, dan apabila fungsi lanjutan meningkat, subkelas akan berkembang. Jika anda menggunakan perhubungan gubahan untuk mencipta objek pembalut (iaitu, objek hiasan) untuk membalut objek sebenar dan menyediakannya dengan fungsi tambahan sambil mengekalkan struktur kelas objek sebenar tidak berubah, ini ialah matlamat corak penghias. Mari analisa struktur asas dan kaedah pelaksanaannya.
Kes: Hei Xiaohu menangkap Tujuh Wira dan juga membakar Hongmao
Peranan Komponen Abstrak: Tujuh Wira
Komponen Konkrit peranan: Kucing Pelangi
Peranan Penghias Abstrak: Tambah bahan
Peranan Penghias Konkrit: Tambah garam dan jintan manis.
Antara muka Qixia, mengisytiharkan kaedah abstrak barbeku
public interface Qi { void show();}
Hong The cat class melaksanakan antara muka Qixia dan melaksanakan kaedah memanggang kucing pelangi
public class Hong implements Qi { @Override public void show() { System.out.println("烧烤一个虹猫"); }}
Ini ialah penghias abstrak yang melaksanakan antara muka Qixia , isytiharkan atribut Qixia untuk memanggil kaedah barbeku Qixia
public class JiaLiao implements Qi { private Qi qi; JiaLiao() { } JiaLiao(Qi component) { this.qi = component; } @Override public void show() { qi.show(); }}
mewarisi kelas abstrak dan mengatasi kaedah barbeku, Menambah garam
public class Yan extends JiaLiao { private Qi qi; Yan() { } Yan(Qi qi) { super(qi); } @Override public void show() { super.show(); add(); } public void add() { System.out.println("加盐"); }}
Mewarisi kelas abstrak dan menulis semula kaedah barbeku, menambah jintan putih
public class ZiRan extends JiaLiao { private Qi qi; ZiRan() { } ZiRan(Qi qi) { super(qi); } @Override public void show() { super.show(); add(); } public void add() { System.out.println("加孜然"); }}
baharu kucing pelangi dan bakar.
Tambah sedikit garam
Tambah sedikit garam dan jintan putih
public class Demo { public static void main(String[] args) { Qi qi = new Hong(); qi.show(); System.out.println(); Qi qi1 = new Yan(qi); qi1.show(); System.out.println(); Qi qi2 = new ZiRan(qi1); qi2.show(); }}
Bukan sahaja anda boleh memanggang kucing pelangi tetapi juga Anda boleh memanggang Tujuh Wira yang lain, cuma tambah kelas untuk melaksanakan antara muka Tujuh Wira.
Selain itu, menambah garam atau jintan manis tidak akan mengubah kualiti daging asal kucing pelangi.
Pembelajaran yang disyorkan: "tutorial video java"
Atas ialah kandungan terperinci Ringkaskan dan susun corak penghias JAVA (contoh terperinci). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!