Tags
14 ページ目
Ruby
箱の中に箱がある船倉の重さを、型判定の再帰で数え落とす。単品も集合も同じ口で答えさせる【Composite】
座標も燃料も生の Float で持ち回り、単位や座標系の取り違えが静かに通る。値を不変の小さなクラスでくるむ【Value Object】
欠測センサーの nil チェックが6か所に並び、1か所忘れると NoMethodError になる。「何もしない」実装で分岐を消す【Null Object】
手順書は「点検を1回呼ぶ」の1行なのに、コードは11手続きが7か所に散らばる。段取りを1つの窓口に集める【Facade】
操作を打ち間違えても、実行済みの操作を戻す手段がコードにない。動作をオブジェクトにして、戻し方も持たせる【Command】
状態を文字列と巨大な case 文で回し、許されない遷移を通してしまう。状態をクラスにして、書けない場所を作る【State】
保冷・防振・保険の組み合わせごとにクラスを作り、掛け算で増えていく。オプションを1枚ずつ重ねる【Decorator】
港ごとに通信規格が違い、増えるたびに交信コード本体の case 分岐を開く。違いを通訳に押し込む【Adapter】
プローブの型を足すたび、散らばった case 文を全部直す羽目になる。生成の窓口を1つにまとめる【Factory Method】
通知先をセンサーが直接呼んでいて、新設の区画にだけ警報が届かない。購読の名簿に一斉通知する【Observer】
港ごとにコピペした手順に、規約改定の修正が行き渡らない。共通の骨格を親クラスに一本化する【Template Method】
新しい方針を足すたび、if/elsif が膨らんで既存の航路計算まで壊れる。方針ごとに部品へ分けて差し替える【Strategy】
コードナビゲーター シリーズ目次
Rubyのfalsyな値は2つだけ — シンプルで明快な真偽判定