戦略デザインパターン

みなさん、こんにちは。私の名前はアレックスです。私はプロのソフトウェア開発者であり、Web業界のクリエーターです。私は何年もの間言語を勉強していて、私の経験を他の人と共有しています。





今日は、ストラテジーデザインパターンについてお話ししたいと思います水を使わないテンプレートの原理と本質をお伝えし、実際に適用する方法をお見せします。





ポイントは何ですか?

デザインパターンストラテジー  またはデザインパターンストラテジー とは、行動デザインパターンを指します。そのタスクは、特定の問題を解決する同様のアルゴリズムを特定することです。アルゴリズムの実装は別々のクラスで行われ、実行時にアルゴリズムを選択する機能が提供されます。





テンプレートを使用すると、実行プロセスで、問題を解決するための戦略(アルゴリズム、ツール、アプローチ)を選択できます。 





何が問題ですか?

このアプローチを適用できるソリューションのタスクについて考えてみましょう。 





あなたが不動産検索のためのウェブポータルを書くという課題に直面していると想像してみてください。MVP(Minimum Viable Product)またはMinimum Working Productは、プロダクトマネージャーのチームによって設計および優先順位が付けられており、ポータルにはアパートの購入者向けの機能が必要です。つまり、あなたの製品のターゲットユーザーは、まず第一に、購入する新しい家を探しているユーザーです。最も要求されている機能の1つは、次の機能です。





  • 購入者が住宅を購入したい地域を地図上で選択します





  • そして、フィルタリングのためのアパートの価格の価格帯を示してください。





, . , , , .





Product Manager' , , . - . , , . 





, - , .





. , . - - , , . 





, . . , , . , , , , .





, , . , , , , , . : 





  • -





  • -





  • , ,





  • ,





  • , , .





統一されたアルゴリズム実装メソッドを備えたスーパークラス。
- .

?

















  • - , , .. 





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





, - . - -. 





ストラテジーパターンのクラス図
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. . , -, .





友達、私たちは行動デザインパターン戦略に精通しましたテンプレートは、特定の問題を解決する同様のアルゴリズムを強調するために使用されます。私たちはあなたと一緒にGOlang言語での実装を見て、アプローチの可能性に精通し、いつそれを使用するのが良いかを理解しました。





アレックス・バーサス、お話できてうれしかったですがんばろう!








All Articles