0
0

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 1 year has passed since last update.

これだけは意識して..!! 高凝集/低結合

Last updated at Posted at 2023-03-12

はじめに

たくさんの原則を覚えるのは大変だけど、これは常に意識して欲しい!
と先輩から助言をいただきました。メモになります。

凝集度と結合度とは

  • ソフトウェアの品質を示す指標(メトリクス)

高凝集/低結合にするメリット

  • 理解容易性:コードを読んで理解しやすくなる
  • 拡張性:コードを修正、拡張しやすくなる
  • 信頼性:修正時にバグを埋めにくくなる
  • 再利用性:同じコードを別の場所で再利用しやすくなる
  • テスト容易性:テストが実施しやすくなる

凝集度とは

  • モジュール内の要素同士がどれだけ関連しているかを示す指標
  • クラスの責務、そのクラスのメソッドとデータ関連(属性)の強さ
  • 高い方が良い

保守を考えたとき、ひとつの関数の中で、様々な機能が混ざり合うことは好ましくない。機能分割されて、機能と関数が1対1になっている方が理解しやすく、修正の際に他の部分に悪い影響を与える機会が減る。

結合度とは

  • モジュール同士の依存度の高さを示す指標
  • 依存度が高い→依存先の修正の影響を受けやすくなる
  • 低い方が良い

呼び出し関係にあるメソッドの結び付きの強さを表す指標。結合度が高くなると複数のクラスで依存度が上がってしまうため、保守やメンテナンス、仕様変更などの対応がしづらくなる。また、設計的な観点からしても、複雑で分かりづらくなってしまう。

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?