4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

デメテルの法則

Last updated at Posted at 2020-02-18

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

##デメテルの法則とは
別名で「最小知識の法則」と言われているらしい。

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

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

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

##解決するには
参考URLに乗せたサイトには

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

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

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

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

4
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?