Permudahkan pengurusan tingkah laku dengan Strategi Corak dalam PHP dan Symfony

王林
Lepaskan: 2024-09-10 06:35:06
asal
764 orang telah melayarinya

Kadangkala anda mempunyai sekeping kod yang mungkin berkelakuan berbeza bergantung pada situasi. Contohnya, anda mungkin perlu mengira kadar secara berbeza berdasarkan jenis pelanggan atau menggunakan algoritma pengisihan tertentu. Daripada menyertakan gelagat ini dalam ifs atau suis besar, anda boleh menggunakan Strategi Corak Reka Bentuk untuk menstruktur kod anda dengan lebih baik.

Mengapa Strategi Corak?

Strategi Corak membolehkan anda memisahkan logik tindakan daripada kod yang lain, supaya anda boleh menukar atau mengganti logik ini dengan mudah tanpa perlu mengubah suai keseluruhan program anda. Jika anda mempunyai beberapa cara untuk melakukan tindakan, di sinilah corak ini menjadi sangat berguna. Daripada mempunyai blok bersyarat yang besar, anda mewakilkan gelagat kepada objek tertentu.

Contoh konkrit: Pengiraan diskaun berdasarkan jenis pelanggan

Katakan anda sedang membangunkan kedai dalam talian dan anda perlu mengira diskaun untuk pelbagai jenis pelanggan (standard, premium, VIP). Daripada menulis syarat untuk setiap jenis pelanggan di mana-mana dalam kod anda, anda akan dapat menggunakan Strategi Corak untuk merangkum setiap pengiraan pengurangan dalam kelas khusus.

Langkah 1: Antara muka dasar

Kami akan mulakan dengan mencipta antara muka DiscountStrategy yang mentakrifkan kaedah kira() yang mesti dilaksanakan oleh setiap strategi pengiraan diskaun.

Simplifier la gestion des comportements avec le Pattern Strategy en PHP et Symfony

Langkah 2: Strategi Khusus

Seterusnya, kami akan mencipta strategi pengiraan pengurangan yang berbeza. Sebagai contoh, untuk pelanggan standard, tiada pengurangan:

Simplifier la gestion des comportements avec le Pattern Strategy en PHP et Symfony

Untuk pelanggan premium, kami akan mengenakan pengurangan sebanyak 10%:

Simplifier la gestion des comportements avec le Pattern Strategy en PHP et Symfony

Dan untuk pelanggan VIP, diskaun 20% yang besar:

Simplifier la gestion des comportements avec le Pattern Strategy en PHP et Symfony

Langkah 3: Kelas Konteks

Sekarang, kami akan mencipta kelas yang akan menggunakan strategi ini. Kelas ini tidak bimbang tentang jenis pengurangan yang akan digunakan, ia mewakilkan logik ini kepada strategi yang diberikan kepadanya.

Simplifier la gestion des comportements avec le Pattern Strategy en PHP et Symfony

Langkah 4: Menggunakan dalam Symfony

Hebat! Sekarang kita akan melihat bagaimana kita boleh mengintegrasikan semua ini ke dalam pengawal Symfony. Anda akan memilih strategi berdasarkan jenis pelanggan, tetapi semua logik pengiraan kekal dalam kelas strategi, yang menjadikan pengawal anda lebih mudah dan bersih.

Simplifier la gestion des comportements avec le Pattern Strategy en PHP et Symfony

Apa yang ia bawa kepada anda

  1. Fleksibiliti: Terima kasih kepada Strategi Corak, anda boleh menambah atau mengubah suai gelagat dengan mudah tanpa menyentuh kod utama anda. Apa yang anda perlu lakukan ialah menambah strategi pengiraan baharu.

  2. Kod yang bersih dan boleh dibaca: Kod anda menjadi lebih mudah dibaca dengan menghapuskan blok if atau switch yang besar-besaran. Setiap polisi mempunyai kelasnya sendiri dengan satu tanggungjawab, yang mengikut Prinsip Tanggungjawab Tunggal (SRP).

  3. Skalabiliti: Jika suatu hari nanti anda perlu menambah diskaun untuk VIP super dengan diskaun 50% lucah, anda hanya mencipta strategi baharu dan kod anda yang selebihnya tidak berubah !

Secara ringkasnya

Strategi Corak ialah pilihan yang sangat baik apabila anda mempunyai beberapa cara untuk melaksanakan tindakan yang sama dan anda mahu kod anda kekal fleksibel dan berskala. Daripada berakhir dengan keadaan yang tidak berkesudahan, anda merangkum gelagat dalam kelas khusus, yang membolehkan anda menukarnya dengan mudah.

Dan adakah anda sudah menggunakan Strategi Corak dalam projek Symfony anda? Jangan teragak-agak untuk mengulas artikel ini!

Atas ialah kandungan terperinci Permudahkan pengurusan tingkah laku dengan Strategi Corak dalam PHP dan Symfony. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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
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!