パンくず
リファクタリング-プログラマーの体質改善テクニック
条件式の単純化
内容
データの再構成
リファクタリング名 | 対象 | 対応 |
---|---|---|
条件記述の分解 | 複雑な条件文(if-then-else)がある | 条件部、"then"部、"else"部からメソッドを抽出する。 |
条件記述の統合 | 同じ結果になる条件テストが複数並んでいる | それらを1つの条件式にまとめ、メソッドとして抽出する |
重複した条件記述の断片の統合 | 条件式のすべての分岐に同じコード片が含まれている | その部分を式の外に出す |
制御フラグの削除 | 一連の論理式で使われる制御フラグとして機能している変数がある | 代わりにbreakやreturnを使う |
ガード節による入れ子条件記述の置き換え | 正常な実行経路がはっきりしないような条件分岐を持つメソッドがある | すべての特殊条件をガード節で処理する |
ポリフォーフィズムによる条件記述の置き換え | オブジェクトのタイプによってふるまいを変える条件文がある | 条件文の分岐先をポリモーフィックに呼び出せるオブジェクトのメソッドに移す |
ヌルオブジェクトの導入 | コードの中でnull(nil)値のチェックを繰り返している | null(nil)値の代わりにnullオブジェクトを導入する |
表明の導入 | プログラムの状態について何らかの条件を前提としているコードがある | アサーションによって、前提条件を明確に表現する |