架构师训练营第二周【作业】
一、请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则:高层模块不应该依赖低层模块。高层模块和低层模块应该通过抽象来互相依赖。除此之外,抽象不要依赖具体实现细节,具体实现细节依赖抽象。
好莱坞原则是用在系统的高层组件与底层组件之间。高层组件不应该直接调用底层组件,而是从容器获取。两者都强调了在程序调用链上高层模块不应该依赖低层模块。
二、请描述一个你熟悉的框架,是如何实现依赖倒置原则的
以PHP里的Laravel框架为例。Laravel 通过服务容器实现了类的依赖以及依赖注入,服务容器是Laravel的核心,在Laravel框架加载的过程中,首先就进行服务容器的实例化,接下来调用系统和用户定义的服务器提供者,服务提供者向服务容器注册类的实现。在程序执行过程中,通过依赖注入的方式调用类的具体实现,而不需要程序自己实例化类,以下面一段代码为例,UserController 需要获取用户信息,Laravel 为程序自动注入了UserRepository 的实现,UserRepository 的实现可以灵活的切换各种实现方式和数据源,这是程序的调用处不需要关注的。
三、请用接口隔离原则优化 Cahe 类的设计,画出优化后的类图
评论