第二周作业
DIP原则
高层模块(high-level modules)不要依赖低层模块(low-level)
高层模块和低层模块应该通过抽象(abstractions)来互相依赖
除此之外,抽象(abstractions)不要依赖具体实现细节(details),具体实现细节(details)依赖抽象(abstractions)。
所谓高层模块和低层模块的划分,简单来说就是,在调用链上,调用者属于高层,被调用者属于低层。
具体开发代码,就是说,我们调用接口去进行业务处理,不要调用具体实现进行处理。
“不要给我们打电话,我们会给你打电话(don‘t call us, we‘ll call you)”这就是著名的好莱坞原则。在好莱坞,演员把简历递交给演艺公司后就只有回家等待。由演艺公司(高层)对整个娱乐项的完全控制,演员(底层)只能被动式的接受公司的差使,在需要的环节中,完成自己的演出。所以依赖倒置原则也被称为好莱坞原则,如Tomcat、Spring都是基于这个原则设计出来的,应用程序(底层)不需要调用Tomcat或者Spring(高层)这样的框架,而是框架调用应用程序。
“不要给我们打电话,我们会给你打电话(don‘t call us, we‘ll call you)”这就是著名的好莱坞原则。在好莱坞,演员把简历递交给演艺公司后就只有回家等待。由演艺公司(高层)对整个娱乐项的完全控制,演员(底层)只能被动式的接受公司的差使,在需要的环节中,完成自己的演出。所以依赖倒置原则也被称为好莱坞原则,如Tomcat、Spring都是基于这个原则设计出来的,应用程序(底层)不需要调用Tomcat或者Spring(高层)这样的框架,而是框架调用应用程序。
版权声明: 本文为 InfoQ 作者【孤星】的原创文章。
原文链接:【http://xie.infoq.cn/article/1b5ed3532fc9d23c893845f8b】。文章转载请联系作者。
评论