|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/objectfive3/
课程评论:没有评论
Coursera课程《objectfive3》是“面向对象原则系列”的第三部分,也是完结篇,重点讲解“依赖倒置原则”和“接口隔离原则”。 **课程亮点:** * **深度解析“依赖倒置原则”:** * 详细解释“逆转”的含义,帮助学员建立对面向对象编程的深刻理解和自信。 * 强调该原则在判断面向对象编程与过程式编程中的重要性。 * 介绍基于该原则的设计模式:“依赖注入”(DI模式),以及如何通过外部注入依赖来实现“面向抽象编程”和“可测试性”。 * 探讨项目间引用问题,对比分析单层、两层、传统三层和领域模式三层结构的优缺点。 * **生动阐述“接口隔离原则”:** * 通过经典的“打印机示例”和作者原创的“DQ(勇者斗恶龙)示例”,展示如何根据客户端需求分离接口。 * DQ示例将帮助学员理解如何依据角色功能分离接口。 **课程内容结构:** **一、 依赖倒置原则** * 原则介绍及原则违反示例 * 低层模块依赖的问题及解决方案(依赖抽象) * 通过抽象实现依赖倒置的细节 * 工厂模式在低层模块生成中的应用 * 抽象依赖带来的好处与优势 * 依赖倒置的本质解读 * 抽象与实现的解耦 * 依赖注入(DI)的概念与实现 * DI在单元测试中的应用(Mocking) * 不同注入方式的探讨(方法注入、UI测试、ViewModel层级测试) * DI容器的介绍与使用 * 项目依赖结构详解 **二、 接口隔离原则** * 原则介绍 * 经典打印机示例 * DQ游戏示例,阐述角色功能与接口分离 **总结:** 本课程旨在帮助程序员通过深入理解依赖倒置原则和接口隔离原则,提升编程技能,实现更优良的面向对象设计,并掌握可测试性强的代码编写方法。
どうもこんにちは,ピーコックアンダーソンです。今回は「オブジェクト指向の原則シリーズ」の第3弾として「依存関係逆転の原則」と「インタフェース分離の原則」を解説しており,オブジェクト指向の原則3部作の完結編となります。今回もいろいろと書籍を読み直して,2つの原則を掘り下げて解説しています。「依存関係逆転の原則」の方が比重は多めです。よりよいプログラミングを目指すプログラマーの方にとって,楽しい内容になっていると思います。依存関係逆転の原則では,独特な原則ネーミングである「逆転」とは何を指すのか?という部分を詳しく解説しているので,このあたりを理解することで,オブジェクト指向プログラミングをしている実感と自信がつくと思います。「依存関係が逆転していたらオブジェクト指向プログラミング」「逆転していなかったら手続き型」と言われるくらい,オブジェクト指向を理解する上で大事な知識ですので,理解があいまいな方は,ぜひご覧になってみてください。依存関係逆転の原則に基づいたデザインパターンである,「依存性の注入:Dependency Injection」(DIパターン)に関しても説明しており,外部から依存性を注入することで,「抽象に対してのプログラミング」や「テスト容易性」を実現する方法を解説しています。依存関係つながりということで,プロジェクト間参照に関しても解説しており,1層構造,2層構造,昔ながらの3層構造,ドメインパターン3層構造の,それぞれの利点等も解説しています。インタフェース分離の原則では,クライアントの要求に合わせたインターフェース分離の方法ということで,有名な「プリンターの例」と,私独自で考えた「ドラクエの例」を解説しており,ドラクエの例を見てもらえれば,役割に応じたインタフェースの分離がどういったものかを理解していただけると思います。【依存関係逆転の原則】#01_依存関係逆転の原則#02_原則違反_上位が下位に依存している例#03_下位モジュールに依存する事の問題点#04_両方とも抽象に依存すべきである#05_両方とも抽象に依存させる実装方法#06_ファクトリーで下位モジュールを生成する#07_抽象に依存することで問題が解決されていることを確認する#08_依存関係逆転という言葉の意味#09_下位モジュールが抽象に依存する事のメリットとは#10_抽象と実装の分離_そもそもオブジェクト指向プログラミングというものは#11_依存性の注入#12_依存性の注入の実装#13_自動テストにおける下位モジュールの問題点#14_自動テストの問題を依存性注入で解決する_Mock手作り#15_自動テストの問題を依存性注入で解決する#16_テストケースごとにMockを作るのは大変#17_Moqを使った自動テストをする方法#18_メソッドで依存性を注入する方法#19_ユーザーインタフェースの自動テストをする方法#20_ViewとViewModelのデータバインド#21_ViewModelからModuleまでの一連を自動テストする#22_ViewModelのコンストラクタからファクトリーを呼ぶ実装#23_DIコンテナツールの使い方#24_複数の依存性がある場合のDIコンテナの動き#25_DIコンテナを外部からアクセス可能にする実装方法#26_プロジェクトの依存関係_1層の場合#27_プロジェクトの依存関係_2層の場合#28_プロジェクトの依存関係_昔ながらの3層の場合#29_プロジェクトの依存関係_ドメインパターン3層構造#30_依存関係逆転の原則違反の回避方法【インタフェース分離の原則】#01_インタフェース分離の原則#02_プリンターの実装例#03_ドラクエを題材にしたインタフェース分離の例#04_キャラクターを操作できるようにする#05_役割に応じてインタフェースを分離する#06_ロールとしてのインタフェース#07_インタフェース分離の原則まとめと5大原則の総括