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.
Panjang jika/else jika rantai menimbulkan beberapa cabaran:
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>
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>
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>
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:
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!