頭脳一式

人の記憶なんて曖昧なもの。すべての情報を頭に記憶するなんてナンセンス。困ったらここに来ればいいじゃん?というスタンスで最強のナレッジベースを目指すブログ

【GoFデザインパターン】Strategyパターン

Strategyパターン

一言でいうとクラスをプラグイン化する。
共通の抽象クラス(又はインターフェース)を持つ複数のクラスを準備しておき、どれをnewするかを状況に応じて切り替える設計のことをStrategyパターンという。

JavaでStrategyパターン

以下はJavaで実装した例。

GameMode Gm = null;
String mode = "easy";

switch (mode) {
case "easy":
    Gm = new EasyMode();
    break;

case "normal":
    Gm = new NormalMode();
    break;

case "hard":
    Gm = new HardMode();
    break;
default :
    Class<?> Class = Class.forName(mode);
    Gm = (GameMode) Class.newInstance();
}