オブジェクト指向の原則1:単一責務の原則とオープンクローズドの原則
Learn SOLID principles: Single Responsibility & Open/Closed. C# examples demonstrate object-oriented design for maintainable code. Improve your software development skills!
Course Content
オブジェクト指向の原則1:単一責務の原則とオープンクローズドの原則 is an intermediate-level Udemy course taught by ピーコック アンダーソン. It runs 2h 14m, is taught in Japanese, and includes a certificate of completion. Learners rate it 4.6 out of 5 from 1,201 reviews, with 5,924 students enrolled. It is a paid course, last updated September 2023.
SOLID原則:単一責務とオープン・クローズド原則を徹底解説
このコースでは、オブジェクト指向プログラミングの重要な基盤となるSOLID原則の中から、特に**単一責務の原則 (Single Responsibility Principle)とオープン・クローズドの原則 (Open/Closed Principle)**に焦点を当てて解説します。
SOLID原則とは?
SOLID原則は、オブジェクト指向設計におけるソフトウェアの品質を高めるための5つの原則の総称です。それぞれの頭文字を取って「SOLID」と呼ばれ、以下の5つの原則で構成されます。
- 単一責務の原則 (Single Responsibility Principle)
- オープン・クローズドの原則 (Open/Closed Principle)
- リスコフの置換原則 (Liskov Substitution Principle)
- インターフェース分離の原則 (Interface Segregation Principle)
- 依存関係逆転の原則 (Dependency Inversion Principle)
本コースでは、その中でも特に重要な単一責務の原則とオープン・クローズドの原則について、初心者にも分かりやすく解説します。
単一責務の原則 (Single Responsibility Principle)
単一責務の原則は、クラスが単一の責務、つまり単一の理由で変化するべきであるという原則です。この原則に従うことで、コードの変更が限定され、保守性と再利用性が向上します。
単一責務の原則のメリット:
- 変更理由の明確化: クラスの変更理由が明確になり、影響範囲を特定しやすくなります。
- 保守性の向上: 特定の機能に関する変更が、他の機能に影響を与えにくくなります。
- 再利用性の向上: 単一の責務を持つクラスは、他の場所で再利用しやすくなります。
- テスト容易性の向上: 特定の機能に焦点を当てたテストが容易になります。
- コードの可読性向上: クラスの役割が明確になり、コードの可読性が向上します。
単一責務の原則違反の例:
- 複数の機能を担当するクラス
- 複数のデータを管理するクラス
- 複数の処理を行うクラス
単一責務の原則の実践:
- 変更理由単位でクラスを分割する
- 3層構造を導入する(プレゼンテーション層、ビジネスロジック層、データアクセス層)
- 修正箇所を最小限に抑える
- 修正する場所を明確にする
- 共通化を避ける(不要な共通化はコードの複雑さを増す)
- 少々悪いコードでも問題視しない(ただし、責務が曖昧な場合は修正が必要)
- 探しやすいコードにする
- クラスを機能ごとに小さく作る
- 小さなクラスがそれぞれに協調して目的を達成させる
- 多数の部品群の中から摘まんで作る
- クラスはどこまで小さくすればいいのか?
- アンダーソン式単一責務の原則
最小カプセルの検証:
- 監視タイマークラス
- 受注画面クラス
- ユーザークラス
- 商品マスターデータアクセス
登場人物に合わせたモデリング:
- 登場人物に合わせたモデリングの四角と線
- 登場人物に合わせたモデリングの四角と線を最小カプセル化する
- アンダーソン式手順
オープン・クローズドの原則 (Open/Closed Principle)
オープン・クローズドの原則は、ソフトウェアの拡張に対してオープンで、修正に対してクローズされているべきであるという原則です。つまり、既存のコードを変更することなく機能を拡張できるように設計することを意味します。
オープン・クローズドの原則のメリット:
- 保守性の向上: 既存のコードを変更せずに機能を拡張できるため、保守性が向上します。
- 安定性の向上: 既存のコードに影響を与えずに機能を拡張できるため、システムの安定性が向上します。
- 再利用性の向上: 既存のコードを変更せずに機能を拡張できるため、コードの再利用性が向上します。
オープン・クローズドの原則違反の例:
- 既存のコードを直接変更して機能を拡張する
- 新しいクラスを作成して既存のクラスを修正する
オープン・クローズドの原則の実装方法:
- 抽象クラスとインターフェース: 抽象クラスやインターフェースを使用して、具体的な実装を隠蔽します。
- ポリモーフィズム: ポリモーフィズムを使用して、異なるクラスを同じインターフェースで扱うことができます。
- ファクトリーパターン: ファクトリーパターンを使用して
Need a web app built? Hire the team behind TutorialSearch.io
We ship fast, production-grade full-stack apps (Next.js, React, edge infra) — the same stack that powers this site.