架构师课程 --week 2-- 课后作业
作业一:
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
Dependency Inversion Principle:
High-level modules shouldn’t depend on low-level modules. Both modules should depend on abstractions. In addition, abstractions shouldn’t depend on details. Details depend on abstractions.
Hollywood Principle:
Don't call us, we'll call you
依赖倒置原则用来指导框架层面的设计,规定了框架中模块间的从属原则。而框架本身用于控制程序的流程,而不是被程序调用。就如好莱坞挑选演员的时候选择Fit自己的演员。
作业二:
请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
以MVC框架为例,所有自己创建的Controller类通过继承抽象类Controller,我们在使用MVC框架编写主程序的时候并非直接调用路由查找,非托管资源内存释放,网页登录验证等一系列框架包涵的功能,而是通过继承抽象类Controller去实现。这就是依赖倒置原则中所说的“无论高级模块(此处的主程序)还是低级模块(框架中包涵的各种单一功能)应该依赖于抽象类”。
抽象类Controller继承了各种丰富的接口功能,这就是依赖倒置原则中所说的“抽象类不依赖于细节”,“细节(主程序)依赖于抽象类”
作业三:
请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
学习总结:
本周内容大纲:
SOLID设计原则:
Single Responsibility Principle
Open/Closed Principle
Liskov Substitution Principle
Interface Segregation Principle
Dependency Inversion Principle
框架核心:Hollywood Principle
版权声明: 本文为 InfoQ 作者【莫莫大人】的原创文章。
原文链接:【http://xie.infoq.cn/article/724311c577fe036c16ffece0f】。文章转载请联系作者。
评论