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