架构师训练营 - 第二周作业
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则: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。
好莱坞原则: 别调用(打电话给)我们,我们会调用(打电话给)你。依赖倒置原则教我们依赖抽象,不要依赖具体的类。好莱坞原则是框架设计上的一种技巧,好让底层组件能挂钩进计算中,而又不会让高层组件依赖低层组件(设计模式举例:模板方法)。两者的目标都是为了解耦和避免对底层组件的依赖。
请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
sl4j框架
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(ObjectFactory.class);
sl4j的实现框架可以是logback、log4j等,logback、log4j是具体实现也就是低层组件,高层层组件(调用方)和低层组件(sl4j具体的实现框架)都依赖的是抽象(org.slf4j.Logger),log4j和logback之间可以灵活切换。
作业3
总结
1、本周重点学习了软件设计的五个原则,OCP、DIP、LSP、SRP、ISP
2、关于DIP解决了我在项目中调用service究竟要不要基于接口、实现进行调用的困惑
3、老师的答疑环境个人非常喜欢,活跃了学习氛围,从侧面了解别人对于一些问题的看法,比如源码阅读、单元测试、技术成长。
评论