Membina kod Java yang boleh diselenggara: Memahami kelebihan dan senario terpakai bagi corak penghias dan corak strategi memerlukan contoh kod khusus
Dalam beberapa tahun kebelakangan ini, dengan perkembangan pesat pembangunan perisian, membina kod yang boleh diselenggara telah menjadi isu penting untuk semua orang . Ini adalah isu yang amat dititikberatkan oleh pembangun. Kod yang boleh diselenggara boleh mengurangkan kesukaran penyelenggaraan kemudian dan meningkatkan kebolehbacaan dan kebolehskalaan kod. Dalam pembangunan Java, corak penghias dan corak strategi ialah dua corak reka bentuk yang biasa digunakan, yang boleh membantu kami membina kod yang lebih boleh diselenggara.
Corak penghias ialah corak reka bentuk struktur yang membolehkan kita menambah fungsi baharu pada objek secara dinamik tanpa mengubah struktur objek sedia ada. Mod ini mencapai kesan menambah kefungsian secara dinamik pada objek dengan membalut objek dalam kelas hiasan, dan kemudian menindih kelas hiasan secara rekursif mengikut keperluan semasa masa jalan.
Di bawah ini kami menunjukkan penggunaan corak penghias melalui contoh tertentu. Katakan kita ada program kedai kopi yang ringkas Kedai kopi menyediakan pelbagai minuman kopi, seperti espresso, mocha, dll. Setiap minuman kopi mempunyai harga asas, dengan pilihan untuk menambah bahan tambahan seperti susu, sirap dan lain-lain, yang masing-masing mempunyai harga. Kita boleh menggunakan corak penghias untuk mencapai fungsi ini.
Pertama, kami mentakrifkan antara muka minuman kopi asas:
public interface Coffee { double getPrice(); String getDescription(); }
Kemudian, kami melaksanakan kelas minuman kopi tertentu:
public class Espresso implements Coffee { @Override public double getPrice() { return 3.5; } @Override public String getDescription() { return "Espresso"; } }
Seterusnya, kami mentakrifkan kelas abstrak penghias, yang melaksanakan antara muka minuman kopi.
public abstract class CoffeeDecorator implements Coffee { private Coffee coffee; public CoffeeDecorator(Coffee coffee) { this.coffee = coffee; } @Override public double getPrice() { return coffee.getPrice(); } @Override public String getDescription() { return coffee.getDescription(); } }
Kemudian, kita boleh melaksanakan kelas penghias tertentu, seperti penghias untuk menambah susu dan penghias untuk menambah sirap.
public class MilkDecorator extends CoffeeDecorator { public MilkDecorator(Coffee coffee) { super(coffee); } @Override public double getPrice() { return super.getPrice() + 1.0; // 添加牛奶的价格 } @Override public String getDescription() { return super.getDescription() + ", Milk"; // 添加描述信息 } } public class SyrupDecorator extends CoffeeDecorator { public SyrupDecorator(Coffee coffee) { super(coffee); } @Override public double getPrice() { return super.getPrice() + 0.5; // 添加糖浆的价格 } @Override public String getDescription() { return super.getDescription() + ", Syrup"; // 添加描述信息 } }
Akhir sekali, kita boleh menggunakan corak penghias untuk membina minuman kopi yang berbeza. Sebagai contoh, kita boleh mencipta espresso dan kemudian menambah susu dan sirap secara rekursif.
Coffee espresso = new Espresso(); Coffee coffeeWithMilkAndSyrup = new SyrupDecorator(new MilkDecorator(espresso)); System.out.println(coffeeWithMilkAndSyrup.getDescription()); System.out.println(coffeeWithMilkAndSyrup.getPrice());
Hasil keluaran kod di atas ialah:
Espresso, Milk, Syrup 5.0
Dengan menggunakan corak penghias, kita boleh menambah bahan secara fleksibel pada minuman kopi tanpa mengubahsuai kelas minuman kopi asal. Dengan cara ini, kita boleh dengan lebih mudah melanjutkan fungsi minuman kopi, dan pada masa yang sama meningkatkan kebolehselenggaraan kod.
Satu lagi corak reka bentuk yang biasa digunakan ialah corak strategi, iaitu corak reka bentuk tingkah laku yang digunakan untuk memilih strategi yang sesuai untuk algoritma pada masa jalan. Corak strategi merangkum algoritma ke dalam kelas strategi bebas, dan kemudian menggunakan kelas konteks untuk memilih strategi yang sesuai untuk pelaksanaan.
Di bawah ini kami menunjukkan penggunaan corak strategi melalui contoh mudah. Katakan kita mempunyai platform e-dagang dan perlu melaksanakan sistem pembayaran. Sistem pembayaran ini perlu menyokong berbilang kaedah pembayaran, seperti Alipay, WeChat Pay, dsb. Kita boleh menggunakan corak strategi untuk mencapai fungsi ini.
Pertama, kami mentakrifkan antara muka pembayaran:
public interface PaymentStrategy { void pay(double amount); }
Kemudian, kami melaksanakan kelas strategi pembayaran khusus:
public class AlipayStrategy implements PaymentStrategy { @Override public void pay(double amount) { System.out.println("Pay " + amount + " RMB via Alipay"); } } public class WechatPayStrategy implements PaymentStrategy { @Override public void pay(double amount) { System.out.println("Pay " + amount + " RMB via Wechat Pay"); } }
Seterusnya, kami menentukan kelas konteks untuk memilih strategi pembayaran yang sesuai:
public class PaymentContext { private PaymentStrategy paymentStrategy; public void setPaymentStrategy(PaymentStrategy paymentStrategy) { this.paymentStrategy = paymentStrategy; } public void pay(double amount) { paymentStrategy.pay(amount); } }
Akhir sekali, kami boleh menggunakan strategi Corak untuk melaksanakan sistem pembayaran. Sebagai contoh, kita boleh memilih pembayaran Alipay atau pembayaran WeChat.
PaymentContext context = new PaymentContext(); // 使用支付宝支付 context.setPaymentStrategy(new AlipayStrategy()); context.pay(100); // 使用微信支付 context.setPaymentStrategy(new WechatPayStrategy()); context.pay(200);
Hasil keluaran kod di atas ialah:
Pay 100.0 RMB via Alipay Pay 200.0 RMB via Wechat Pay
Dengan menggunakan corak strategi, kami boleh mengasingkan strategi pembayaran daripada kelas konteks, menjadikannya lebih mudah untuk menambah dan mengubah suai strategi pembayaran, meningkatkan kebolehselenggaraan dan keselamatan daripada kod.
Ringkasnya, kedua-dua corak penghias dan corak strategi adalah alat yang berkesan untuk membantu kami membina kod Java yang boleh diselenggara. Corak penghias boleh membantu kami menambah kefungsian pada objek secara dinamik, manakala corak strategi boleh membantu kami memilih algoritma yang sesuai semasa masa jalan. Memahami kelebihan dan senario yang boleh digunakan bagi kedua-dua mod ini, dan menguasai kaedah pelaksanaan khusus mereka, akan membantu kami menulis kod yang lebih boleh diselenggara.
Atas ialah kandungan terperinci Fahami kelebihan dan senario yang boleh digunakan bagi corak penghias dan corak strategi: membina kaedah kod Java yang mudah diselenggara. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!