54
保守性
デメテルの法則
最小知識の原則。
条文
もし
他オブジェクトの内部を辿って呼び出すコード(`a.getB().getC().doThing()`)は、依存の連鎖全体に自らを結びつける。ゆえにその連鎖のどこかの変更が波及して壊れる。
ならば
「呼んでよいのは、直接の協力者・引数・自分が生成したもの・自分のフィールドのメソッドだけ。getter を数珠つなぎにしているなら、データを持つオブジェクト側にメソッドを足せ。」
ただし
教条より実用 — 厳格な適用は転送メソッドとラッパーの肥大を招く
出典
Karl Lieberherr & Ian Holland, Assuring Good Style for Object-Oriented Programs (IEEE Software, 1989)。
原典へ関連する条文