54

保守性

デメテルの法則

最小知識の原則。

条文

もし

他オブジェクトの内部を辿って呼び出すコード(`a.getB().getC().doThing()`)は、依存の連鎖全体に自らを結びつける。ゆえにその連鎖のどこかの変更が波及して壊れる。

ならば

呼んでよいのは、直接の協力者・引数・自分が生成したもの・自分のフィールドのメソッドだけ。getter を数珠つなぎにしているなら、データを持つオブジェクト側にメソッドを足せ。

ただし

教条より実用厳格な適用は転送メソッドとラッパーの肥大を招く

出典

Karl Lieberherr & Ian Holland, Assuring Good Style for Object-Oriented Programs (IEEE Software, 1989)。

原典へ

関連する条文