【本題】StrategyパターンについてStrategyパターンは、デザインパターンの一種です。Strategyは「戦略」という意味を持ちますが、プログラミングで言えばアルゴリズムがそれに相当します。Strategyパターンにおいては、アルゴリズム(戦略)を状況に応じて切り替える実装方法になります。構成Strategyパターンは、Strategy(抽象戦略)とConcreteStrategy(具体戦略)とContext(文脈)の3つで構成されています。ConcreteStrategy(具体戦略)に、具体的なアルゴリズムがプログラミングされています。Strategy(抽象戦略)で、ConcreteStrategy(具体戦略)のどれを利用するのかを定めます。Context(文脈)が、実際にStrategy(抽象戦略)を利用して、ConcreteStrategy(具体戦略)のアルゴリズムを実行します。メリットIF文などでメソッド内で条件分岐させる方法を採ると、アルゴリズムが増えるほどコード量が多くなり、可読性が落ちてしまいます。アルゴリズムを追加・改良するにしても、他のアルゴリズムに影響を及ぼさない様に細心の注意を払う必要があります。Strategyパターンを利用すれば、アルゴリズムを他の部分と分離することが出来ます。これにより、簡単にアルゴリズムの追加・改良を行うことが可能になります。サンプルコード以下は、映画の各タイトルに3つの評価点が与えられており、それらをランキング形式で出力するコードです。3つのアルゴリズムから切り替えて出力できるようになっています。来週に自然言語処理関連で社内勉強会の発表を行う予定なので、デザインパターンの勉強が終わり次第、そちらに着手する予定。日)IBMのWatsonきっかけでエンジニアに憧れて28歳未経験でWebエンジニアへ転職。2018年12月から3年間で「10000時間」をプログラミングに捧げる計画を立て、学んだことをブログの投稿中。Activitiesryoutakuこのサイトについてプライバシーポリシ。