オブジェクト指向の原則1:単一責務の原則とオープンクローズドの原則
オブジェクト指向5大原則SOLIDの「単一責務の原則」と「オープンクローズドの原則」について解説しています。サンプルコードはC#を使って解説しています。
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_この原則を生んだ偉人の思いと受け継ぐ我々
What You Will Learn!
- 単一責務の原則
- クラスの分割方法
- 単一責務の原則のアンダーソン式の定義
- オープンクローズドの原則
- オープンクローズドの原則の活用方法
Who Should Attend!
- 単一責務の原則について学びたい方
- オープンクローズドの原則について学びたい方