デザインパターン1:デザインパターンを学ぶ準備とクラス図とファサードパターン【C#】
What you'll learn
- デザインパターンの必要性を理解できる
- 手続き型プログラミングとオブジェクト指向型プログラミングの違いを理解できる
- UMLのクラス図の書き方を理解できる
- Facadeパターンを理解できる
Requirements
- カプセル化、インタフェース、継承についてある程度理解していること
- サンプルコードはC#を使用しているため,ある程度C#コードが理解できること(javaなどのオブジェクト指向言語がわかれば理解できるとは思います)
Description
どうもこんにちは,ピーコックアンダーソンです。
今回はデザインパターンのコースの第1弾として,
デザインパターンを学ぶ上で必要な,
オブジェクト指向の必要性の理解と,UML:クラス図の解説をして,
デザインパターンの本編として,ファサードパターンを解説しています。
デザインパターン関連の本を改めて読み返し,
深堀した内容を,C#のコードを実装しながら解説しています。
デザインパターンを学ぶための準備に時間を割いている関係上,
今回は本編のデザインパターンが1パターンになりましたが,
次回以降は複数のパターンを収録しようと思っています。
具体的に何パターン収録するというよりは,
ある程度のボリュームになったらリリースする感じで,
シリーズの連載をしていきます。
どうぞお楽しみにしていてください。
■デザインパターンとは
デザインパターンとは
■手続き型とオブジェクト指向型の違い
#01_手続き型プログラミングとオブジェクト指向プログラミングの違い
#02_マリオとルイージを動かすプログラム仕様
#03_手続き型で実装_描画
#04_手続き型で実装_右ボタンで移動
#05_手続き型で実装_Aボタンで返事
#06_オブジェクト指向で実装_描画
#07_オブジェクト指向で実装_右ボタンで移動
#08_オブジェクト指向で実装_Aボタンで返事
#09_手続き型とオブジェクト指向の比較_手続き型の場合
#10_手続き型とオブジェクト指向の比較_オブジェクト指向の場合
#11_サブクラスの考察
#12_カプセル化するということ
#13_振る舞いをカプセル化するということ
#14_再利用可能ということ
■UML:クラス図の書き方
#01_クラス図の概要
#02_クラスの書き方
#02B_抽象クラスと抽象メソッドは斜体にする.tscproj
#02C_静的メンバーと静的メソッドは下線を引く
#03_型の書き方
#04_アクセスレベルの書き方
#05_is-a_継承
#06_is-a_インタフェースと実装
#07_has-a_集約
#08_has-a_コンポジション
#09_use-a_依存
#10_クラス図まとめ
■ファサードパターン
#01_Facadeパターンの定義
#01B_ファサードが無い時_ファサードがある時
#02_複雑なサブシステムに対して実装する
#03_staticなファサードを導入する
#04_フォルダー構成を工夫する
#05_クラスをカプセル化するということ
#06_サブシステム内のクラスの公開非公開
#07_一連の手順があるロジックをファサードで吸収する
#08_XMLコメントを書くことでファサードがAPIの仕様書になる
#09_インタフェースを使ったファサードの実装方法
#09B_ダミーファサードを作成して本番コードと差し替える
#10_staticスタイルかinterfaceスタイルのどちらを採用するべきか
#11_一部をファサード化する
#12_ファサードを使うとどんないい事があったのか
#13_ファサードの有効活用
#14_ファサードの注意事項
#15_ファサードまとめ
Who this course is for:
- デザインパターンを習得したい方
Instructor
20年ほどプログラマーとして活動しています。初期の頃はいろんな現場を転々とするプログラマーで10年ほど経験をつみ,その後,大手メーカーに入社し,C#やSQLServerを中心とした製品開発にて設計,製作,保守,プロジェクトリーダー等を10年近く担当。
知識習得のきっかけは,現場に分かりづらいプログラムコードが散乱しており,それらをわかりやすくするために,オブジェクト指向,ドメイン駆動開発,テスト駆動開発,リファクタリング,デザインパターンの書籍などを読み漁りました。その結果,一つのドメイン駆動開発手法にいまはたどり着き,チームのメンバーに伝えていますが,この知識を大勢の方にお伝えすると,予想以上に喜んで頂けているので,私の学んだ知識をできるだけわかりやすくお伝えして,私のした遠回りをあまりしなくてもいいように,解説していきたいと思っています。