こんなレガシーコードは嫌だ!(PHP編)
文字列結合でメソッドをルーティングしてる
code:php
// 要求: AExecuter, BExecuter のようなクラスがあってそれを使い分けたい
class Controller
{
function __coustruct($name)
{
$this->executer = $name . "Executer"
}
public function exec() {
(new $this->executer())();
}
}
欠点
クラスが使われているのかの判定が静的に行えない
IDEの指摘が信用できなくなる
関数の利用判定が静的に行えない
IDEの指摘が信用できなくなる
同じ変数がさまざまな場所で定義されていてどこでどの変数を使っているのかわからない
機能を使ってはいけないのではなく、強力な機能は高い凝集度の範囲で利用しなければ大災害が引き起こされてしまう
関連