Pengenalan
Niat: Tambahkan beberapa tanggungjawab tambahan secara dinamik pada objek. Dari segi menambah fungsi, mod hiasan adalah lebih fleksibel daripada menjana subkelas.
Penyelesaian utama: Kami sering menggunakan warisan untuk melanjutkan kelas Memandangkan warisan memperkenalkan ciri statik kepada kelas, dan apabila fungsi sambungan meningkat, subkelas akan menjadi lebih dan lebih berkembang.
Cara menggunakan: Lanjutkan tanpa menambah banyak subkelas.
Cara menyelesaikan: Bahagikan tanggungjawab fungsi tertentu dan warisi corak penghias.
Kod utama:
1. Kelas Komponen memainkan peranan abstrak dan tidak seharusnya dilaksanakan secara konkrit.
2. Ubah suai rujukan kelas dan warisi kelas Komponen, dan secara khusus melanjutkan kelas untuk mengatasi kaedah kelas induk.
Senario penggunaan:
1.
2 Tambah fungsi secara dinamik dan batalkannya secara dinamik.
Melaksanakan
Buat antara muka Shape dan kelas entiti yang melaksanakan antara muka Shape. Kemudian buat kelas hiasan abstrak ShapeDecorator yang melaksanakan antara muka Shape dan gunakan objek Shape sebagai pembolehubah contohnya. RedShapeDecorator ialah kelas entiti yang melaksanakan ShapeDecorator. Kelas DecoratorPatternDemo menggunakan RedShapeDecorator untuk menghiasi objek Shape.
Langkah 1:
public interface Shape{ void draw(); }
Langkah 2:
public class Rectangle implements Shape{ @Override public ovid draw(){ System.out.println("draw Rectangle"); } }
public class Cricle implements Shape{ @Override public ovid draw(){ System.out.println("draw Circle"); } }
Langkah 3:
public abstract class ShapeDecorator implements Shape{ private Shape shape; // 持有一个 Shape 对象 public ShapeDecorator(Shape shape){ this.shape = shape; } public void draw(){ shape.draw();// TODO 根据传进来的具体 Shape 对象,调用对应的 draw 方法 } }
Langkah 4:
public class RedShapeDecorator extends ShapeDecorator{ public RedShapeDecorator(Shape shape){ super(shape); } @Override public void draw(){ shape.draw(); setRedBorder(shape); } public void setRedBorder(Shape shape){ System.out.println("Border Color: Red"); } }
Langkah 5
public class DecoratorPatterndDemo{ public static void main(String args[]){ //TODO 面向抽象层编程 // 普通的Circle Shape circle = new Circle(); System.out.println("Circle with normal Border"); circle.darw(); // 红色边界的 Circle ShapeDecorator redCircle = new RedShapeDecorator(new Circle); System.out.println("Circle of red Border"); redCircle.draw(); // 红色边界的 Rectangle ShapeDecorator redRectangle = new RedShapeDecorator(new Rectangel): System.out.println("Rectangle of red Border"); redRectangle.draw(); } }
Kebaikan dan Kelemahan
Kebaikan: Menghias kelas dan kelas berhias boleh berkembang secara bebas dan tidak akan berinteraksi antara satu sama lain Mod gandingan dan hiasan ialah mod alternatif kepada mod Hiasan boleh memanjangkan kefungsian kelas pelaksanaan secara dinamik.
Kelemahan: Hiasan berbilang lapisan lebih rumit.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan mod hiasan corak reka bentuk struktur Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Dreamweaver Mac版
Alat pembangunan web visual

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular