Home > OOP Archive
OOP Archive
法則に違反したっていいじゃない
オブジェクト指向プログラミングにおける有名な法則の一つにデメテルの法則 (Law of Demeter, LoD) というものがある。これは、簡単に言えば「戻り値として返されたオブジェクトのメソッドを呼び出してはいけない」という法則であり、例えば次のようなコードを書くと、「それ、デメテルの法則に違反しているよ」などと言われたりするので注意が必要だ。
int id = projects.Find(projectName).GetID(); // プロジェクト名から ID を取得
そして、このコードをデメテルの法則に違反しないように書き換えると、次のようになる。
int id = projects.GetID(projectName); // プロジェクト名から ID を取得
変更後のコードは Find が返すオブジェクト(ここでは多分 Project みたいなクラス)に依存していないので、オブジェクト間の結合度が下がったことになる。結合度の低いプログラムは良いプログラムであり、デメテルの法則に従えば良いプログラムになるというわけだ。
でも、ちょっと待って欲しい。
- Comments: 0
- TrackBack (Close): 0
Home > OOP Archive