2
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

デメテルの法則

PMDで解析していたところ、デメテルの法則を守れていないという警告を出されたが、聞いたことなかったので調べてみた。

デメテルの法則とは

別名で「最小知識の法則」と言われているらしい。

ソフトウェアの設計、特にオブジェクト指向プログラムの設計におけるガイドラインである。 このガイドラインは1987年の末にかけてノースイースタン大学で作成された。簡潔に言うと「直接の友達とだけ話すこと」と要約できる。基本的な考え方は、任意のオブジェクトが自分以外(サブコンポーネント含む)の構造やプロパティに対して持っている仮定を最小限にすべきであるという点にある。

つまり「いろんなこと知ってるオブジェクトを作るな」ということらしい。

デメテルの法則に反したら

結合度が高くなるので、テストや修正がきつい… オブジェクト指向に反するということですね。

解決するには

参考URLに乗せたサイトには

・ドットを無くす(importとか他クラスのインスタンスメソッド使うなってことかな?)
・設計を見直す

といったことが挙げられていた。

感想

調査後、自分のAndroidプログラムを振り返ってみると 、メインアクテビティとか結構ドットが入っている…
アクティビティは膨らみやすいというのもあるので、適切な書き方を考えないと悪いプログラムになりそうだ。とりあえずドットを減らすところから始めたい。

参考URL

・デメテルの法則を厳密に守るにはどうすればいいの?
https://qiita.com/br_branch/items/37cf71dd5865cae21401

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?