Week2-Homework
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置,就是子类,或者逻辑下层的类,依赖上层。而不是上层依赖下层。双方可以通过接口来明确依赖关系。比如,controller和service。controller是上层,service是下层。如果按照依赖倒置的原则,应该是由controller来提供声明,service来实现其行为。但目前:日常开发中,更多的还是,由service来声明一个接口,serviceimpl实现自己的接口,自己声明,自己实现。而controller注入service并调用方法。这其实是controller依赖了service,违反了依赖倒置的原则。
You don't call me,I'll call you.这就是经典的好莱坞原则。好莱坞原则,说的是软件设计中,业务方法,类,实例等,并不需要调用框架中的任何方法。应该将业务方法写在框架中,由框架来自动的调用业务方法,完成软件开发。
请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
Spring 的 ioc就是典型的依赖倒置的实现。
Spring核心就是一个DI框架,那么这个框架解决了哪些问题呢?
1.声明需要创建的对象需要哪些依赖对象
2.注册创建这些依赖对象所需要的类
3.提供一种使用1和2两点思想创建对象的机制
其实这个过程,就是一棵依赖树递归遍历的过程。Spring围绕ApplicationContext接口,解决了以上三个问题。
那么,ApplicationContext这个接口,其实主要由两个东西构成,Configuration和Bean。Configuration提供Bean之间的依赖关系配置,Bean提供基本的对象。ApplicationContext拿到这些Bean根据Configuration的规则来组装。
类图
评论