Tags
221 ページ目
Refactoring
状態を確かめる if-else が、メソッドごとに泥沼になる。状態ごとの部品に振る舞いを持たせる【State】
遠くて危険なデータ源へ、アクセス制限と取得の手間を呼び出し側に背負わせたくない。代理役を立てる【Proxy】
バルブ、ダクト、点火を決まった順に呼ばないと爆発する。起動手順を窓口1つにまとめる【Facade】
暗視も熱感知も付けたいのに、継承では組み合わせごとにクラスが要る。重ね着で機能を足す【Decorator】
継承とロールを合わせたら同名メソッドが衝突し、初期化順序が崩れて暴走した。操作と対象を分けて組む【Bridge】
メソッド名もデータの形も違う古い端末を、今のスキャナーから読みたい。変換役を挟む【Adapter】
undef チェックを1か所書き忘れて落ちる。「何もしない」オブジェクトで分岐ごと消す【Null Object】
複製したはずのオブジェクトが、片方を変えるともう片方も壊れる。浅いコピーを避けて複製する【Prototype】
引数が散らばって未完成のオブジェクトが出回る。組み立てを専用の部品に任せる【Builder】
砂漠用の防護服に氷雪用の動力炉が組み合わさる。一式をまとめて作って防ぐ【Abstract Factory】
環境が増えるたびに膨らむ if/elsif。道具の選択と生成を分けて直す【Factory Method】
レシピ指示を足すたびに文字列解析の if/elsif が伸びる。文法をオブジェクトの式ツリーにする【Interpreter】
Singleton のせいでテストが書けず、並列実行で状態が汚れる。グローバルな依存を DI に置き換える【Singleton】
大量の注文データでメモリが膨らみ OOM になる。共通のメニュー情報を共有して減らす【Flyweight】
同じ設定のオブジェクトを毎回 new で作って、初期化コストが重い。出来上がったものを clone して増やす【Prototype】
1
…
5
6
7
…
15