Corak penghias ialah corak reka bentuk struktur yang membolehkan menambah fungsi objek secara dinamik tanpa mengubah suai kelas asal. Ia dilaksanakan melalui kerjasama komponen abstrak, komponen konkrit, penghias abstrak dan penghias konkrit, dan boleh mengembangkan fungsi kelas secara fleksibel untuk memenuhi keperluan yang berubah-ubah. Dalam contoh ini, penghias susu dan mocha ditambahkan pada Espresso untuk jumlah harga $2.29, menunjukkan kuasa corak penghias dalam mengubah suai gelagat objek secara dinamik.
Anatomi Corak Penghias dalam Corak Reka Bentuk Java
Pengenalan
Corak Penghias ialah corak reka bentuk struktur yang membolehkan fungsi ditambah secara dinamik pada objek kelas tanpa mengubah suai asasnya Dengan menggunakan objek penghias, fungsi kelas boleh diperluaskan secara fleksibel untuk memenuhi keperluan yang berubah-ubah.
Prinsip
Corak penghias berfungsi dengan cara berikut:
Contoh Kod
// 抽象组件 interface Beverage { double cost(); } // 具体组件 class Espresso implements Beverage { @Override public double cost() { return 1.99; } } // 抽象装饰器 abstract class CondimentDecorator implements Beverage { protected Beverage beverage; public CondimentDecorator(Beverage beverage) { this.beverage = beverage; } } // 具体装饰器 class Milk extends CondimentDecorator { public Milk(Beverage beverage) { super(beverage); } @Override public double cost() { return beverage.cost() + 0.10; } } // 具体装饰器 class Mocha extends CondimentDecorator { public Mocha(Beverage beverage) { super(beverage); } @Override public double cost() { return beverage.cost() + 0.20; } } // 实战案例 public class CoffeeShop { public static void main(String[] args) { Beverage espresso = new Espresso(); // 添加牛奶和摩卡装饰器 Beverage milkEspresso = new Milk(espresso); Beverage mochaMilkEspresso = new Mocha(milkEspresso); // 计算饮料总价 double totalCost = mochaMilkEspresso.cost(); System.out.println("Beverage cost: " + totalCost); } }
Output:
Beverage cost: 2.29
Kesimpulan
Corak penghias boleh digunakan untuk memanjangkan fungsi objek secara dinamik tanpa mengubah suai kod sedia ada. Ia menyediakan cara yang fleksibel dan elegan untuk memenuhi keperluan yang berubah-ubah sambil mengekalkan kod yang boleh diselenggara dan diperluaskan.
Atas ialah kandungan terperinci Analisis Corak Penghias dalam Corak Reka Bentuk Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!