Pola Desain Strategi

Halo semuanya, teman-teman. Nama saya Alex dan saya adalah pengembang dan pembuat perangkat lunak profesional di industri web. Saya telah belajar bahasa selama bertahun-tahun, berbagi pengalaman saya dengan orang lain.





Hari ini saya ingin berbicara dengan Anda tentang pola desain Strategi. Saya akan mencoba menyampaikan kepada Anda prinsip dan esensi templat tanpa air, dan menunjukkan kepada Anda bagaimana menerapkannya dalam praktik.





Apa gunanya?

Strategi pola desain  atau pola desain Strategi  mengacu pada pola desain perilaku. Tugasnya adalah mengidentifikasi algoritme serupa yang memecahkan masalah tertentu. Implementasi algoritme dilakukan di kelas terpisah dan kemampuan untuk memilih algoritme disediakan saat runtime.





Template memungkinkan dalam proses eksekusi untuk memilih strategi (algoritma, alat, pendekatan) untuk memecahkan masalah. 





Apa masalahnya?

Mari kita pertimbangkan tugas dalam solusi yang pendekatan ini dapat diterapkan. 





Bayangkan Anda dihadapkan pada tugas menulis portal web untuk pencarian real estat. MVP ( Minimum Viable Product ) atau produk kerja minimum telah dirancang dan diprioritaskan oleh tim Manajer Produk Anda dan portal harus memiliki fungsionalitas untuk pembeli apartemen. Artinya, target pengguna produk Anda adalah, pertama-tama, mereka yang mencari rumah baru untuk dibeli. Salah satu fitur yang paling banyak diminta adalah kemampuan untuk:





  • Pilih area di peta di mana pembeli ingin membeli rumah





  • Dan tunjukkan kisaran harga harga apartemen untuk penyaringan.





, . , , , .





Product Manager' , , . - . , , . 





, - , .





. , . - - , , . 





, . . , , . , , , , .





, , . , , , , , . : 





  • -





  • -





  • , ,





  • ,





  • , , .





Kelas super dengan metode implementasi algoritma terpadu.
- .

?

















  • - , , .. 





- .   , . , , , . , , - - . -. 





, - . - -. 





Diagram kelas dari pola Strategi
Strategy

, -, . .





-, , doSearch(filters)



, , . 





, - , (, , , , ..), , , - -, , . , , backend, .





- - , . -  - , . , getData



, filters



. , -  setStrategy



, . , , , . 





, GOlang. - doSearch







Strategy.go
Strategy.go

, . , . Map



.





. struct



, Strategy



. , , , . :





FirstAlgorithm.go
FirstAlgorithm.go
SecondAlgorithm.go
SecondAlgorithm.go

. - . ? - , :





  • struct







  • initStrategy



    , -





  • struct setStrategy



    ,





  • getData



    , .





Context.go
Context.go

- . -, . getData



. , - ( - ) , . , , . :





Client.go
Client.go

:





First implements strategy map[role:1]







Second implements strategy map[role:2]







, . , , . .





- . , . PHP.





?

Strategy?





  1. . -, -. 





  2. - . -, -. 





  3. . . 





  4. . , -, .





Teman-teman, kami berkenalan dengan Strategi pola desain perilaku . Template digunakan untuk menyoroti algoritme serupa yang memecahkan masalah tertentu. Kami melihat penerapan dalam bahasa GOlang bersama Anda , berkenalan dengan kemungkinan pendekatan tersebut dan mencari tahu kapan lebih baik untuk menggunakannya.





Saya senang berbicara dengan Anda, Alex Versus . Semoga berhasil!








All Articles