架构师训练营第 2 周 _ 学习总结
本周在老师的引导下回顾了编程技术的发展简史,学习了软件开发语言如何一步步发展到今天的面向对象编程语言。面向对象是当今的主流,要深入理解面向对象编程的特性和原则,才能真正做到面向对象编程。
面向对象编程的三要素
封装
继承
多态
封装、继承、多态这3个概念因为面向对象编程才流行起来,但这3个特性都不是面向对象语言独有的。例如,过程式编程语言c语言也能实现这些特性。
面向对象设计的五个基本原则
开/闭原则
依赖倒置原则
Liskov替换原则
单一职责原则
接口分离原则
依赖倒置原则
五个原则中,依赖倒置原则引起了大家的广泛讨论。发现自己误解了依赖倒置的本义,依赖倒置不是简单的等价于面向接口编程。面向接口编程强调的是解耦,依赖倒置强调的是依赖方向,即接口所有权。我们通常认为低层模块应该拥有它们自己的接口,好让高层模块调用。但是当应用了接口倒置原则时,接口所有权归高层模块。高层模块清楚自己需要什么接口,拥有接口控制权,低层模块只需要按要求实现就好,这就是“倒置”。依赖倒置优先考虑高层模块的稳定性,因为高层模块相比底层更容易变。
多交流,多讨论,体会才更深。通过这周课程get到了依赖倒置原则的本义,现在还回味无穷。
框架vs工具
框架调用应用程序代码,应用程序代码调用工具。依赖倒置原则是框架实现的基础,从时间线的角度看,框架立足现在,应用程序代码视为未来,要让现在的代码控制未来的代码。
评论