Jadual Kandungan
1. Blok lain yang tidak diperlukan sepenuhnya " >1. Blok lain yang tidak diperlukan sepenuhnya
2. Penetapan Nilai " > 2. Penetapan Nilai
3. Pemeriksaan Prasyarat " > 3. Pemeriksaan Prasyarat
4. Tukar If-Else kepada Kamus — Elakkan If-Else sepenuhnya " > 4. Tukar If-Else kepada Kamus — Elakkan If-Else sepenuhnya
5. Panjangkan aplikasi — elakkan menggunakan If-Else sepenuhnya " > 5. Panjangkan aplikasi — elakkan menggunakan If-Else sepenuhnya
Rumah Java javaTutorial Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu?

Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu?

Jul 26, 2023 pm 04:29 PM
if-else


Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu?

5 cara untuk mereka bentuk perisian yang lebih baik dan menggantikan If-Else. Contoh Permulaan kepada Lanjutan

Biar saya katakan ini: If-Else biasanya merupakan pilihan yang tidak baik.

Ia membawa kepada reka bentuk yang kompleks, kebolehbacaan kod yang lemah, dan boleh menyebabkan kesukaran dalam pemfaktoran semula.

Walau bagaimanapun, If-Else telah menjadi penyelesaian percabangan kod de facto, dan ia memang masuk akal. Ini adalah perkara pertama yang diajar kepada semua pemaju yang bercita-cita tinggi. Malangnya, ramai pembangun tidak pernah bergerak ke hadapan kepada strategi percabangan yang lebih sesuai.

Mantera sesetengah orang ialah: Jika-Lain adalah tukul, semuanya adalah paku.

Ketidakupayaan untuk memberitahu bila perlu menggunakan kaedah yang lebih sesuai adalah antara perkara yang membezakan junior dengan junior.

Saya akan menunjukkan kepada anda beberapa petua dan corak yang akan menamatkan amalan mengerikan ini.

Kesukaran bertambah dengan setiap contoh.

1. Blok lain yang tidak diperlukan sepenuhnya

Ini mungkin salah satu dosa terbesar yang dilakukan oleh pembangun junior. Contoh di bawah ialah contoh hebat tentang perkara yang berlaku apabila anda diberitahu bahawa If-Else adalah hebat.

Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu?

Hanya keluarkan blok else` untuk memudahkan proses ini.

Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu?

Nampak lebih profesional kan?

Anda akan sering mendapati bahawa tiada blok lain sebenarnya diperlukan sama sekali. Seperti dalam kes ini, anda ingin melakukan beberapa tindakan dan kembali serta-merta jika syarat tertentu dipenuhi.

2. Penetapan Nilai

Jika anda memberikan nilai baharu kepada pembolehubah berdasarkan beberapa input yang disediakan, hentikan karut If-Else - pendekatan yang lebih mudah dibaca.

Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu?

Semudah itu, memang payah. Pertama, If-Else boleh dengan mudah digantikan dengan suis di sini. Walau bagaimanapun, kita boleh memudahkan lagi kod ini dengan mengalih keluar kod lain sepenuhnya.

Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu?

Jika lain tidak digunakan, kami ditinggalkan dengan kod yang boleh dibaca bersih. Ambil perhatian bahawa saya juga menukar gaya kepada pulangan cepat dan bukannya penyataan pulangan tunggal - tidak ada gunanya meneruskan ujian untuk nilai jika nilai yang betul telah ditemui.


3. Pemeriksaan Prasyarat

Biasanya, saya dapati jika sesuatu kaedah memberikan nilai yang tidak sah, tidak masuk akal untuk meneruskan pelaksanaan.

Katakan kita mempunyai kaedah DefineGender dari sebelum ini, yang memerlukan nilai input yang diberikan mestilah sentiasa 0 atau 1.

Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu?

Tidak masuk akal untuk melaksanakan kaedah tanpa pengesahan nilai. Oleh itu, kita perlu menyemak beberapa prasyarat sebelum membenarkan kaedah untuk meneruskan pelaksanaan.

Menggunakan teknik pengekodan pertahanan klausa pengawal, anda akan menyemak nilai input kaedah dan kemudian terus melaksanakan kaedah.

Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu?

Pada ketika ini, kami memastikan bahawa logik utama hanya dilaksanakan apabila nilai berada dalam julat yang dijangkakan.

JIKA kini juga telah digantikan dengan ternary, kerana tidak ada lagi keperluan untuk lalai kepada "tidak diketahui" pada akhirnya.

4. Tukar If-Else kepada Kamus — Elakkan If-Else sepenuhnya

Katakan anda perlu melakukan beberapa operasi yang akan memilih berdasarkan beberapa syarat, kami tahu bahawa kami perlu menambah lebih banyak operasi kemudian.

Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu?

Mungkin sesetengah orang lebih suka menggunakan If-Else yang telah dicuba dan diuji. Jika anda menambah tindakan baharu, cuma tambah sesuatu yang lain. Sangat mudah. ​​Walau bagaimanapun, pendekatan ini bukanlah reka bentuk yang baik dari segi penyelenggaraan.

Mengetahui bahawa kami perlu menambah operasi baharu kemudian, kami boleh memfaktorkan semula If-Else ke dalam kamus.

Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu?

Kebolehbacaan telah dipertingkatkan dengan baik dan kodnya boleh disimpulkan dengan lebih mudah.

Perhatikan bahawa kamus diletakkan di dalam kaedah hanya untuk tujuan ilustrasi. Anda mungkin mahu menyediakannya dari tempat lain.

5. Panjangkan aplikasi — elakkan menggunakan If-Else sepenuhnya

Ini adalah contoh yang lebih maju sedikit.

Ketahui bila hendak menghapuskan Ifs sepenuhnya dengan menggantikannya dengan objek.

Selalunya anda akan mendapati diri anda perlu melanjutkan beberapa bahagian permohonan anda. Sebagai pembangun junior, anda mungkin tergoda untuk melakukan ini dengan menambahkan pernyataan If-Else (iaitu else-if) tambahan.

Berikan contoh ilustrasi ini. Di sini kita perlu memaparkan contoh Pesanan sebagai rentetan. Pertama, kami hanya mempunyai dua perwakilan rentetan: JSON dan teks biasa. Menggunakan If-Else bukanlah masalah besar pada peringkat ini, jika kita boleh menggantikan yang lain dengan mudah, asalkan ia seperti yang dinyatakan sebelum ini.

Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu?

Mengetahui bahawa kita perlu menskalakan bahagian aplikasi ini, pendekatan ini sama sekali tidak boleh diterima.

Kod di atas bukan sahaja melanggar prinsip "buka/tutup", tetapi juga tidak dibaca dengan baik dan boleh menyebabkan masalah kebolehselenggaraan.

Pendekatan yang betul ialah yang mengikut prinsip SOLID - kami melakukan ini dengan melaksanakan proses penemuan jenis dinamik (dalam kes ini corak Strategi).

Proses pemfaktoran semula proses yang tidak kemas ini adalah seperti berikut:

· Ekstrak setiap cawangan ke dalam kelas strategi yang berasingan menggunakan antara muka biasa

· Cari secara dinamik semua kelas yang melaksanakan antara muka biasa

· Tentukan strategi yang hendak dilaksanakan berdasarkan input

Kod untuk menggantikan contoh di atas adalah seperti berikut. Ya, ini lebih banyak kod. Ia memerlukan anda memahami cara penemuan jenis berfungsi. Tetapi aplikasi penskalaan secara dinamik ialah topik lanjutan.

Saya hanya tunjukkan bahagian tepat yang akan menggantikan contoh If-Else. Jika anda ingin melihat semua objek yang terlibat, lihat intipati ini.

Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu?

Mari kita lihat kodnya.

Tandatangan kaedah kekal tidak berubah kerana pemanggil tidak perlu tahu tentang pemfaktoran semula kami.

Pertama, dapatkan semua jenis dalam pemasangan yang melaksanakan antara muka biasa IOrderOutputStrategy. Kemudian, kami mencipta kamus, nama paparanName pemformat ialah kunci dan jenisnya ialah nilai.

Kemudian pilih jenis pemformat daripada kamus dan cuba nyatakan objek dasar.

Akhir sekali, panggil ConvertOrderToString objek strategi.

Atas ialah kandungan terperinci Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu?. 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)

Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu? Bagaimanakah syarikat kami menghapuskan sepenuhnya 2,000 jika-lain dalam projek itu? Jul 26, 2023 pm 04:29 PM

Mula-mula, dapatkan semua jenis dalam perhimpunan yang melaksanakan antara muka biasa IOrderOutputStrategy. Kemudian, kami mencipta kamus, nama paparanName pemformat ialah kunci dan jenisnya ialah nilai. Kemudian pilih jenis pemformat daripada kamus dan cuba buat seketika objek dasar.

Bagaimana untuk menulis if-else secara elegan di Jawa Bagaimana untuk menulis if-else secara elegan di Jawa Apr 29, 2023 pm 10:04 PM

1. Kaedah suis mempunyai kesan yang baik pada pemprosesan nilai penghitungan Sebagai contoh, pemprosesan yang berbeza perlu dilakukan untuk status pesanan yang berbeza Oleh kerana nilai status adalah terhad, maka kita boleh terus menggunakan suis untuk melakukan pemprosesan yang berbeza untuk status yang berbeza. Penyata Asal publicvoidbefore(Integerstatus){if(status==1){System.out.println("Pesanan tidak diterima");}elseif(status==2){System.out.println("Pesanan tidak dihantar") ; }elseif(status==3

Cara menggunakan operator ternary untuk mengoptimumkan if-else dalam java Cara menggunakan operator ternary untuk mengoptimumkan if-else dalam java May 02, 2023 pm 11:34 PM

Gunakan operator ternary untuk mengoptimumkan if-else1 dan menilai tugasan berdasarkan syarat if-else, seperti: Stringid="";if(flag){id="a";}else{id="b";} use Operator ternary boleh terus dioptimumkan ke dalam baris kod: id=flag?"a":"b"; 2. Gunakan syarat if-else untuk menentukan kaedah panggilan, seperti: Setset1=newHashSet();Setset2=newHashSet (); jika(bendera){set1.add(

Pergi asas bahasa - if-else Pergi asas bahasa - if-else Jul 24, 2023 pm 03:38 PM

if ialah pernyataan dengan keadaan Boolean Jika keadaan bernilai benar, kod dalam kurungan kerinting selepas if akan dilaksanakan.

Apakah struktur kawalan aliran biasa dalam Python? Apakah struktur kawalan aliran biasa dalam Python? Jan 20, 2024 am 08:17 AM

Apakah struktur kawalan aliran biasa dalam Python? Dalam Python, struktur kawalan aliran ialah alat penting yang digunakan untuk menentukan susunan pelaksanaan program. Mereka membenarkan kami melaksanakan blok kod yang berbeza berdasarkan syarat yang berbeza, atau melaksanakan blok kod berulang kali. Berikut akan memperkenalkan struktur kawalan proses biasa dalam Python dan memberikan contoh kod yang sepadan. Pernyataan bersyarat (jika lain): Pernyataan bersyarat membolehkan kami melaksanakan blok kod yang berbeza berdasarkan syarat yang berbeza. Sintaks asasnya ialah: jika keadaan 1: #apabila keadaan

Laksanakan pernyataan if and else secara serentak dalam C/C++ Laksanakan pernyataan if and else secara serentak dalam C/C++ Sep 05, 2023 pm 02:29 PM

Dalam bahagian ini, kita akan melihat cara untuk melaksanakan kedua-dua bahagian if dan else dalam kod C atau C++. Penyelesaian ini agak rumit. Apabila if dan else dilaksanakan satu demi satu, seolah-olah pernyataan tanpa if-else telah dilaksanakan. Tetapi di sini kita akan melihat bagaimana untuk melaksanakannya secara berurutan jika wujud. Contoh kod #include<iostream>usingnamespacestd;intmain(){ intx=10;

Perkongsian petua: kurangkan penggunaan if-else dan tingkatkan kebolehbacaan kod! Perkongsian petua: kurangkan penggunaan if-else dan tingkatkan kebolehbacaan kod! Oct 27, 2022 am 10:11 AM

Artikel ini tidak bermaksud untuk menghapuskan atau mendiskriminasi jika lain Kita semua tahu kegunaan if else Ia hanya untuk memberi anda idea tambahan dalam beberapa senario khusus untuk meningkatkan kebolehbacaan kod kami.

Satu artikel mengajar anda cara melaksanakan JavaScript jika pengoptimuman cawangan Satu artikel mengajar anda cara melaksanakan JavaScript jika pengoptimuman cawangan Mar 14, 2023 pm 07:37 PM

Adakah 1,000 syarat penghakiman memerlukan 1,000 jika kenyataan? Bagaimana untuk mengoptimumkan jika penyata cawangan? Artikel berikut akan bercakap dengan anda tentang cara mencapai pengoptimuman cawangan. Saya harap ia akan membantu semua orang!

See all articles