Rumah Java javaTutorial Fahami kelebihan dan senario yang boleh digunakan bagi corak penghias dan corak strategi: membina kaedah kod Java yang mudah diselenggara

Fahami kelebihan dan senario yang boleh digunakan bagi corak penghias dan corak strategi: membina kaedah kod Java yang mudah diselenggara

Dec 23, 2023 pm 02:07 PM
corak strategi Boleh dikekalkan kod java Corak penghias

Fahami kelebihan dan senario yang boleh digunakan bagi corak penghias dan corak strategi: membina kaedah kod Java yang mudah diselenggara

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();
}
Salin selepas log masuk

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";
    }
}
Salin selepas log masuk

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();
    }
}
Salin selepas log masuk

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";  // 添加描述信息
    }
}
Salin selepas log masuk

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());
Salin selepas log masuk

Hasil keluaran kod di atas ialah:

Espresso, Milk, Syrup
5.0
Salin selepas log masuk

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);
}
Salin selepas log masuk

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");
    }
}
Salin selepas log masuk

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);
    }
}
Salin selepas log masuk

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);
Salin selepas log masuk

Hasil keluaran kod di atas ialah:

Pay 100.0 RMB via Alipay
Pay 200.0 RMB via Wechat Pay
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Gunakan Java untuk menulis kod untuk melaksanakan animasi cinta Gunakan Java untuk menulis kod untuk melaksanakan animasi cinta Dec 23, 2023 pm 12:09 PM

Menyedari kesan animasi cinta melalui kod Java Dalam bidang pengaturcaraan, kesan animasi adalah sangat biasa dan popular. Pelbagai kesan animasi boleh dicapai melalui kod Java, salah satunya ialah kesan animasi jantung. Artikel ini akan memperkenalkan cara menggunakan kod Java untuk mencapai kesan ini dan memberikan contoh kod khusus. Kunci untuk merealisasikan kesan animasi jantung ialah melukis corak berbentuk hati dan mencapai kesan animasi dengan menukar kedudukan dan warna bentuk jantung. Berikut ialah kod untuk contoh mudah: importjavax.swing.

Bagaimana untuk mereka bentuk struktur jadual MySQL yang boleh diselenggara untuk melaksanakan fungsi tempahan dalam talian? Bagaimana untuk mereka bentuk struktur jadual MySQL yang boleh diselenggara untuk melaksanakan fungsi tempahan dalam talian? Oct 31, 2023 am 08:11 AM

Bagaimana untuk mereka bentuk struktur jadual MySQL yang boleh diselenggara untuk melaksanakan fungsi tempahan dalam talian? Dalam kehidupan seharian, semakin ramai orang memilih perkhidmatan temu janji dalam talian. Sama ada membuat temu janji dengan doktor, membuat temujanji untuk makanan, membuat temu janji di tempat, dll., sistem temu janji dalam talian yang boleh dipercayai dan cekap adalah penting untuk menyediakan perkhidmatan yang berkualiti. Sebelum mereka bentuk struktur jadual MySQL yang boleh diselenggara untuk melaksanakan fungsi tempahan dalam talian, anda perlu mempertimbangkan aspek berikut: Pertama, kita perlu mencipta jadual untuk menyimpan maklumat pengguna. Jadual ini akan mengandungi nama pengguna, nombor telefon, alamat e-mel, dsb.

Cara memanggil API Amap melalui kod Java untuk melaksanakan pengiraan jarak laluan Cara memanggil API Amap melalui kod Java untuk melaksanakan pengiraan jarak laluan Jul 29, 2023 pm 01:17 PM

Cara memanggil API Amap melalui kod Java untuk melaksanakan pengiraan jarak laluan Memandangkan permintaan orang ramai untuk keadaan trafik masa nyata dan navigasi meningkat, perancangan laluan peta menjadi semakin penting. Sebagai penyedia perkhidmatan peta terkemuka di China, fungsi perancangan laluan Amap digemari oleh majoriti pembangun. Artikel ini akan memperkenalkan cara memanggil API Amap melalui kod Java untuk melaksanakan pengiraan jarak laluan. API Amap menyediakan satu siri antara muka yang kaya, termasuk pengekodan geo, pengekodan geo terbalik, perancangan laluan dan fungsi lain. Dalam artikel ini, kami akan memberi tumpuan kepada

Apakah kes aplikasi praktikal corak strategi dalam rangka kerja java? Apakah kes aplikasi praktikal corak strategi dalam rangka kerja java? Jun 05, 2024 pm 08:44 PM

Corak strategi dalam rangka kerja Java digunakan untuk menukar gelagat kelas secara dinamik termasuk: Rangka kerja Spring: pengesahan data dan pengurusan cache Rangka kerja JakartaEE: pengurusan transaksi dan suntikan pergantungan rangka kerja JSF: penukar dan pengesah, pengurusan kitaran hayat tindak balas.

Tafsiran dokumentasi API Amap: Kod Java untuk melaksanakan pertanyaan maklumat ketibaan bas masa nyata Tafsiran dokumentasi API Amap: Kod Java untuk melaksanakan pertanyaan maklumat ketibaan bas masa nyata Jul 31, 2023 pm 12:30 PM

Tafsiran dokumentasi API Amap: Kod Java melaksanakan pertanyaan maklumat ketibaan bas masa nyata Dengan populariti telefon pintar dan pembangunan pengangkutan bandar, perjalanan bas telah menjadi bahagian yang amat diperlukan dalam kehidupan bandar moden. Sebagai penyedia perkhidmatan peta terkemuka di China, Amap menyediakan fungsi maklumat bas yang sangat berkuasa dan boleh menanyakan maklumat ketibaan bas masa nyata. Artikel ini akan memperkenalkan cara melaksanakan fungsi ini dengan mentafsir dokumentasi API Amap dan menyediakan contoh kod Java. Pertama, kita perlu memahami API Amap

Cara memanggil API Amap melalui kod Java untuk melaksanakan fungsi perancangan laluan Cara memanggil API Amap melalui kod Java untuk melaksanakan fungsi perancangan laluan Jul 30, 2023 pm 07:33 PM

Cara memanggil API Amap melalui kod Java untuk melaksanakan fungsi perancangan laluan Navigasi peta telah menjadi salah satu fungsi penting dalam kehidupan seharian kita. Dalam aplikasi mudah alih moden, banyak aplikasi telah menyepadukan fungsi perancangan laluan untuk membantu pengguna mencari laluan pemanduan, berjalan kaki atau pengangkutan awam yang optimum. API Amap menyediakan antara muka dan fungsi yang kaya untuk memudahkan pembangun melaksanakan fungsi navigasi peta dengan mudah. Artikel ini akan memperkenalkan cara memanggil API Amap melalui kod Java untuk melaksanakan fungsi perancangan laluan. Pertama, kita perlu mendaftarkan Amap

Contoh kod Java: Menggunakan antara muka Alibaba Cloud DTS untuk mencapai penyegerakan pangkalan data Contoh kod Java: Menggunakan antara muka Alibaba Cloud DTS untuk mencapai penyegerakan pangkalan data Jul 05, 2023 am 11:22 AM

Contoh kod Java: Menggunakan antara muka Alibaba Cloud DTS untuk mencapai penyegerakan pangkalan data Pengenalan: Dengan perkembangan pesat pengkomputeran awan dan data besar, penyegerakan pangkalan data telah menjadi salah satu keperluan yang amat diperlukan oleh banyak perusahaan. Perkhidmatan Pemindahan Data (DTS) Alibaba Cloud menyediakan fungsi penyegerakan pangkalan data yang berkuasa, yang boleh membantu perusahaan dengan cepat dan cekap mencapai penyegerakan data antara pangkalan data yang berbeza. Artikel ini akan memperkenalkan cara menggunakan antara muka Alibaba Cloud DTS untuk mencapai penyegerakan pangkalan data, dan menyediakan contoh kod Java yang sepadan. 1. Persediaan: Sebelum bermula, kita perlu

Adakah terdapat alat dalam talian yang boleh menukar kod Python ke kod Java? Adakah terdapat alat dalam talian yang boleh menukar kod Python ke kod Java? Aug 27, 2023 pm 07:01 PM

Python dan Java adalah dua bahasa pengaturcaraan yang digunakan secara meluas dalam industri pembangunan perisian. Mereka masing-masing mempunyai pelbagai kelebihan dan kekurangan dan sesuai untuk pelbagai jenis projek. Python terkenal dengan kemudahan penggunaan dan kebolehbacaannya, manakala Java terkenal dengan keteguhan dan prestasinya. Salah satu perbezaan utama antara Python dan Java ialah cara ia ditulis. Python mempunyai sintaks yang lebih longgar yang menjadikan penulisan dan pemahaman kod lebih mudah, manakala Java mempunyai sintaks yang lebih ketat yang boleh menjadikan penulisan dan pemahaman kod agak mencabar. Walaupun perubahan ini, ramai pembangun mendapati diri mereka berada dalam situasi di mana mereka perlu menukar kod Python kepada kod Java, sebagai contoh, untuk bekerja pada projek yang memerlukan Java

See all articles