Tags
221 ページ目
Refactoring
状態を文字列と巨大な case 文で回し、許されない遷移を通してしまう。状態をクラスにして、書けない場所を作る【State】
保冷・防振・保険の組み合わせごとにクラスを作り、掛け算で増えていく。オプションを1枚ずつ重ねる【Decorator】
港ごとに通信規格が違い、増えるたびに交信コード本体の case 分岐を開く。違いを通訳に押し込む【Adapter】
プローブの型を足すたび、散らばった case 文を全部直す羽目になる。生成の窓口を1つにまとめる【Factory Method】
通知先をセンサーが直接呼んでいて、新設の区画にだけ警報が届かない。購読の名簿に一斉通知する【Observer】
港ごとにコピペした手順に、規約改定の修正が行き渡らない。共通の骨格を親クラスに一本化する【Template Method】
新しい方針を足すたび、if/elsif が膨らんで既存の航路計算まで壊れる。方針ごとに部品へ分けて差し替える【Strategy】
覚えた設計を全部使いたくなる。必要な部品だけを選んで短く収める【KISS】
神クラスを手順で分けたら、かえって絡まった。責務で分けて窓口1つで隠す【Facade】
まだ誰も頼んでいない拡張の仕組みを盛りたくなる。重複だけを Template Method で畳む【YAGNI】
操作が直接データを書き換えるだけで、元に戻せず試せない。操作をオブジェクトにして undo/redo する【Command】
作り変えられない外部の形式を、共通の形で扱いたい。間に変換役を挟む【Adapter】
却下したはずの許可証が、承認済みと表示される。ありえない状態を型で作れなくする【State】
通知先を足すたびに、在庫処理の本体を開いて書き換えている。知らせる側と受ける側を切り離す【Observer】
トッピングの組み合わせごとにクラスが倍々に増える。包んで重ねる部品にする【Decorator】
1
2
3
4
…
15