オブジェクト指向の原則1:単一責務の原則とオープンクローズドの原則

オブジェクト指向5大原則SOLIDの「単一責務の原則」と「オープンクローズドの原則」について解説しています。サンプルコードはC#を使って解説しています。

Ratings 4.54 / 5.00
オブジェクト指向の原則1:単一責務の原則とオープンクローズドの原則

What You Will Learn!

  • 単一責務の原則
  • クラスの分割方法
  • 単一責務の原則のアンダーソン式の定義
  • オープンクローズドの原則
  • オープンクローズドの原則の活用方法

Description

どうもこんにちは,ピーコックアンダーソンです。

今回は「オブジェクト指向の5大原則」の中から,

「単一責務の原則」と「オープン・クロースドの原則」に関して解説しています。


オブジェクト指向の5大原則は,

単一責務の原則(Single Responsibility Principle)

オープン・クロースドの原則(Open/closed principle)

リスコフの置換原則(Liskov substitution principle)

インターフェース分離の原則(Interface segregation principle)

依存関係逆転の原則(Dependency inversion principle)

の5つで構成されており,それぞれの頭文字をとって「SOLID」と呼ばれています。


今回解説している「単一責務の原則」は,

簡単に言うと,「クラスは1つの責務だけをするようにつくろう」という感じで,

「オープン・クロースドの原則」の原則は,

「機能拡張するときは追加型で追加し,

既存のコードに影響が出ないように,機能拡張をしよう」

といった内容ですが,これらの内容に関する書籍を改めて読み返し,

私なりに整理し,独自の視点を取り入れて,新人教育にも使えるレベルで

かみ砕いて解説してみました。そのため,2つの原則だけで,

結構なボリュームなってしまったので,2原則でリリースします。


正直,ドメイン駆動開発の元になっている考え方で,

非常に重要なエッセンスが詰め込まれたコースになっています。

ドメイン駆動開発を受講した方は,ドメイン駆動のルーツがわかり,ドメイン駆動をより理解できる内容で,

未受講者にとっては,これを事前に学んでおくことで,今後,ドメイン駆動を学ぶ際に,

ドメイン駆動のパターンが,すんなり理解できるのではないかと思います。


といっても,「インタフェースってなに?」「カプセル化ってなに?」という方には,

少々難しい内容になっているので,事前に「C#でオブジェクト指向をする方法」を

受講していただくことをお勧めします。


【単一責務の原則】

S_01_単一責務の原則とは

S_02_原則違反の例

S_03_変更理由単位でクラスを分ける

S_04_3層構造の例

S_05_修正箇所を最小にできる

S_06_修正する場所が明確になる

S_07_ 共通化しましょうという話ではない

S_08_少々悪いコードでも問題視しない理由

S_09_探しやすいコード

S_10_クラスは機能ごとに小さく作る

S_11_小さなクラスがそれぞれに協調して目的を達成させる

S_12_多数の部品群のなかから摘まんで作る

S_13_クラスはどこまで小さくすればいいのか

S_14_アンダーソン式単一責務の原則

S_15_最小カプセルの検証_監視タイマークラス

S_16_最小カプセルの検証_受注画面クラス

S_17_最小カプセルの検証_ユーザークラス

S_18_最小カプセルの検証_商品マスターデータアクセス

S_19_登場人物に合わせたモデリングの四角と線

S_20_登場人物に合わせたモデリングの四角と線を最小カプセル化する

S_21_アンダーソン式手順

S_22_パターンを見つけ出す

S_23_プログラミングの自問


【オープンクローズドの原則】

O_01_オープンクローズドの原則の概要

O_02_オープンクローズドの原則違反の例

O_03_オープンクローズドの原則の実装方法

O_04_カード読み込み画面の作成

O_05_ポイント画面の作成

O_06_オープンクローズドの原則違反_クライアントコードのみ

O_07_オープンクローズドの原則違反_ポイントクラスを分けても解決しない例

O_08_オープンクローズドの原則違反_ポイントクラスのメソッドが増える例

O_09_オープンクローズドの原則違反_private変数にしても解決しない例

O_10_オープンクローズドの原則を適応する

O_11_オープンクローズドの原則を適応後にAnaポイントを拡張してみる

O_12_オープンクローズドの原則を適合後にファクトリーパターンを導入する

O_13_拡張メソッドを抽象クラスで実装する方法

O_14_拡張ポイントを仮想メソッドで実装する方法

O_15_早まった抽象をしないことも抽象をするくらい大事

O_16_予想されるバリエーション

O_17_この原則を生んだ偉人の思いと受け継ぐ我々

Who Should Attend!

  • 単一責務の原則について学びたい方
  • オープンクローズドの原則について学びたい方

TAKE THIS COURSE

Tags

  • Object Oriented Design

Subscribers

4199

Lectures

43

TAKE THIS COURSE



Related Courses