Rumah > Java > javaTutorial > teks badan

Bagaimanakah saya boleh mengelakkan rantaian yang tidak kemas jika/lainnya apabila mengendalikan arahan berasaskan teks di Jawa?

Patricia Arquette
Lepaskan: 2024-10-29 07:15:30
asal
502 orang telah melayarinya

 How can I avoid messy long if/else if chains when handling text-based commands in Java?

Menguruskan Rantaian Panjang Penyata if dalam Java

Dalam bidang pengaturcaraan Java, adalah perkara biasa untuk menghadapi situasi di mana sistem memerlukan pengendalian arahan yang datang melalui berasaskan teks siaran. Untuk memproses arahan ini, pembangun mungkin menggunakan rangkaian panjang pernyataan if/else if. Walau bagaimanapun, apabila bilangan arahan bertambah, pendekatan ini boleh membawa kepada kod yang sukar digunakan dan tidak terurus.

Perangkap Panjang jika/else jika Rantai

Panjang jika/else jika rantai menimbulkan beberapa cabaran:

  • Kerumitan Kod: Apabila bilangan arahan bertambah, kod menjadi semakin kompleks dan sukar untuk dibaca, diselenggara dan nyahpepijat.
  • Kebolehselenggaraan : Menambah perintah baharu atau mengubah suai yang sedia ada menjadi tugas yang membosankan dan mudah ralat.
  • Kebolehbacaan: Pangkalan kod kehilangan kejelasannya, menjadikannya lebih sukar bagi pembangun untuk memahami tujuan dan aliran program.

Penyelesaian: Corak Perintah

Untuk menangani isu ini, corak Perintah menawarkan pendekatan yang lebih elegan. Corak ini memperkenalkan konsep merangkum setiap arahan sebagai objek berasingan, dikenali sebagai Perintah.

Melaksanakan Corak Perintah:

Untuk melaksanakan corak Perintah, cipta antara muka dipanggil Perintah yang mentakrifkan satu kaedah exec(). Setiap arahan harus melaksanakan antara muka ini dan mengandungi logiknya sendiri untuk melaksanakan tugas tertentu.

<code class="java">public interface Command {
    void exec();
}

public class CommandA implements Command {

    void exec() {
        // ... 
    }
}

// etc...</code>
Salin selepas log masuk

Mencipta Peta Perintah:

Seterusnya, cipta Peta yang memetakan rentetan arahan (cth., "A", "B") kepada objek Perintah yang sepadan:

<code class="java">Map<String, Command> commandMap = new HashMap<>();
commandMap.put("A", new CommandA());
commandMap.put("B", new CommandB());</code>
Salin selepas log masuk

Memfaktorkan semula Rantaian if/else if:

Akhir sekali , rantai if/else if yang panjang boleh digantikan dengan panggilan kaedah mudah:

<code class="java">commandMap.get(value).exec();</code>
Salin selepas log masuk

Pertimbangan Tambahan:

Untuk meningkatkan penyelesaian, anda boleh memasukkan khas arahan seperti UnknownCommand atau NullCommand untuk mengendalikan arahan yang tidak sah atau tidak dijangka. Ini menambah fleksibiliti dan menghalang sistem daripada ranap akibat input yang tidak dikenali.

Faedah Corak Perintah:

Corak Perintah menawarkan beberapa faedah:

  • Pemudahan Kod: Ia memecahkan struktur if/else jika monolitik kepada unit yang lebih kecil dan boleh diurus.
  • Kebolehselenggaraan Dipertingkat: Menambah, mengubah suai atau mengalih keluar arahan menjadi tugasan setempat, meminimumkan kesan pada bahagian lain pangkalan kod.
  • Kebolehbacaan yang Dipertingkat: Tujuan dan aliran kod menjadi lebih jelas dan lebih mudah, menjadikannya lebih mudah untuk difahami dan dinavigasi.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengelakkan rantaian yang tidak kemas jika/lainnya apabila mengendalikan arahan berasaskan teks di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!