|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/objectfive1/
课程评论:没有评论
这门课程名为"objectfive1",旨在深入讲解面向对象设计原则中的“单一职责原则”与“开闭原则”。课程由ピーコックアンダーソン主讲,他将“单一职责原则”的核心思想概括为“每个类只应负责一项职责”,而“开闭原则”则强调“在进行功能扩展时,应以增加新代码的方式进行,避免修改现有代码,从而保障功能的扩展性”。 课程内容全面,涵盖了两个原则的方方面面。对于“单一职责原则”,课程从其定义、违例示例出发,讲解如何按变更理由拆分类、三层结构的应用、如何最小化修改范围和明确修改点,并强调这并非强制实现代码的冗余,而是为了使代码更易于查找。课程还探讨了如何将小类协作以达成目的,以及对“类应该多小才算小”的定义,并提出了“安德森式单一职责原则”以及对“最小封装”的验证,通过具体的类(如监控定时器、订单画面、用户、商品主数据访问)进行案例分析。此外,还涉及如何根据参与者特征进行建模,以及应用“安德森式步骤”寻找模式和进行自问。 对于“开闭原则”,课程详细阐述了其概要、违例示例及实现方法。通过创建卡片读取画面和积分画面等场景,剖析了仅客户端代码违例,以及分割积分类仍无法解决问题的场景。课程还展示了积分类方法增加、私有变量的局限性等违例情况,并重点讲解了如何应用开闭原则,以及应用后的扩展(如Ana积分的扩展)。课程还介绍了引入工厂模式、使用抽象类实现扩展方法,以及通过虚拟方法实现扩展点。最后,课程强调了“不过早抽象”的重要性,以及该原则背后的历史意义和未来传承。 本课程内容充实,是学习领域驱动开发(DDD)重要基础的绝佳途径。对于已学习DDD的学员,可以更深入地理解其根源;对于未学习者,提前掌握这些原则将有助于日后顺利理解DDD的模式。然而,课程内容对于不熟悉“接口”和“封装”概念的学习者可能稍有门槛,建议在学习本课程前,先完成“C#中面向对象的方法”课程。
どうもこんにちは,ピーコックアンダーソンです。今回は「オブジェクト指向の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_この原則を生んだ偉人の思いと受け継ぐ我々