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?

SOLID原則について

Posted at

SOLID原則

当記事の背景

・オブジェクト指向プログラミングにおける設計原則の再確認
・アウトプットによる長期記憶化

SOLID原則とは

・**「変更しやすい」「理解しやすい」「再利用しやすい」**モジュールを設計・開発するための原則

S:Single Responsibility Principle(単一責任の原則)

O:Open Closed Principle(オープンクローズドの原則)

L:Liskov Substitution Principle(リスコフの置換原則)

I:Interface Segregation Principle(インターフェース分離の原則)

D:Dependency Inversion Principle(依存性逆転の原則)

S:Single Responsibility Principle(単一責任の原則)

モジュール/クラス/関数などは、単一の機能について責任を持ち、その機能をカプセル化すべきである
→違反すると修正の影響範囲の調査工数が増加する。

O:Open Closed Principle(オープンクローズドの原則)

モジュール/クラス/関数などは拡張に対してはオープンであり、修正に対してはクローズドであるべきである。
→新たなコードを追加することで機能を拡張することができ、拡張によって既存コードは修正されない。
→種別によって振る舞いの変更が必要な場合、この原則を適用すべき。

L:Liskov Substitution Principle(リスコフの置換原則)

サブタイプ(継承先)のオブジェクトはスーパータイプ(継承元)の仕様に従わなければならない
→オブジェクト指向では継承は「Is-a」関係。
→リスコフの置換原則では「Is-a」を満たしているかと振る舞いが同等であるかを満たしている必要がある。

I:Interface Segregation Principle(インターフェース分離の原則)

使用しないメソッドにコードを強制的に依存させてはならない
→不要なフィールドやメソッドにクライアントが依存しなくても良いように、インターフェースの分割を図るべき。

D:Dependency Inversion Principle(依存性逆転の原則)

1.上位モジュールはいかなるものも下位モジュールから持ち込んではならない。双方とも抽象に依存するべき。
2.抽象は詳細に依存してはならない。詳細が抽象に依存するべきである。
→1は上位モジュールが下位モジュールの抽象(例えばインターフェース)に依存し、下位モジュールはそのインターフェースをimplementする形にすべきであるというもの。

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?