写点什么

第二周作业

用户头像
changtai
关注
发布于: 2020 年 06 月 16 日
第二周作业



作业一:

  • 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?

依赖倒置原则(Dependency Inversion Principle)又叫依赖反转原则,主要内容有:

  1. 高层模块(high-level modules)不要依赖低层模块(low-level);

  2. 高层模块和低层模块应该通过抽象(abstractions)来互相依赖;

  3. 高层模块和低层模块应该通过抽象(abstractions)来互相依赖;



简单分析一下,高层模块依赖底层模块的话,稳定性和扩展性没有办法保证,一旦底层模块有改动,高层模块也不得不进行改动;正确的做法是高层对需要的功能进行抽象,底层模块去实现抽象,这个抽象是相对稳固的,即使以后底层模块有调整,只要抽象不变,就不会影响到高层模块。重点是一定要高层模块来根自己的功能特性来进行抽象,才来做到高层模块不依赖于底层的模块。



好莱坞原则主要用于框架设计中,内容是:Don't call me, I will call you。理解为:应用程序不需要调用框架,只需要实现框架定义的抽象,框架在运行中就会主动调用应用程序。这个与依赖倒置原则中“高层模块(high-level modules)不要依赖低层模块(low-level)”是一致的。



作业二:

  • 请描述一个你熟悉的框架,是如何实现依赖倒置原则的。

web容器与web应用程序,web容器与我们开发web应用程序没有直接的依赖关系,都是依赖于servlet规范这个抽象;只要我的应用程序实现了servlet,web容器(tomcat)在启动后会主动加载我们写的应用程序。



作业三:

  • 请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。





CacheOprationInterface暴露给应用程序的,CacheConfigInterface暴露给系统。



设计模式之美

https://time.geekbang.org/column/article/177444



用户头像

changtai

关注

还未添加个人签名 2018.04.30 加入

还未添加个人简介

评论

发布
暂无评论
第二周作业