Week02 总结
好莱坞原则(Hollywood Principle):别打电话给我们,有事我会打电话给你。
好莱坞原则是用在系统的高层组件与底层组件之间。高层组件不应该直接调用底层组件,而是从容器获取。
例子:假设qq在线聊天,有聊天框和表情选择框,那么,打开聊天框,然后打开表情框,选择表情——这个过程不应该在聊天框的代码里出现(或者说,聊天框不应该参与直接调用表情框),而是应该聊天框告诉qq容器:我要调用A,虽然我不知道那是什么,然后容器提供A(表情框组件)。好处是,假如之后腾讯更新了更好的表情框,然后由容器控制生命周期,而聊天框则不参与。
依赖倒置原则(Dependency Inversion Principle):A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。B.抽象不应该依赖于具体实现,具体实现应该依赖于抽象。
依赖倒置原则更像是一种你应该养成的编程习惯,它要求你面对接口编程。
例子:类A,类B,类C,都有相同的属性,相同的方法,然后都有可能被类H调用(高层调用低层),这样H类的实例如果调用这三个类,那么这个类H就和这三个类就发生了耦合,但是如果把这三个类抽取出一个接口I,类H调用I(面向接口编程),H就依赖于接口,A、B、C也依赖于接口。好处是,在这种情况下,类与类之间的耦合降低了,不依赖具体类而是依赖于接口。
控制反转(Inversion of Control):控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。
golang码农,使用框架暂未使用依赖注入框架,不知道些什么?
评论